Linux文件服务器的搭建
<hr><h2 id="linux文件服务器的搭建">Linux文件服务器的搭建</h2>
<hr>
<pre><code>Samba
vsftpd
nfs
</code></pre>
<p>Samba服务</p>
<pre><code>作用:共享目录(smb协议)
软件:samba 服务端, samba-client 客户端
配置文件:/etc/samba/smb.conf
服务:smb, nmb
端口:smb ---> 139/tcp,445/tcp 提供文件共享功能
nmb ---> 137/udp,138/udp 提供解析计算机名称
</code></pre>
<p>配置文件:/etc/samba/smb.conf</p>
<p>全局配置</p>
<pre><code>
workgroup = MYGROUP >>>设置工作组名称
server string = Samba Server Version %v >>>显示samba软件版本信息
interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24 >>>samba服务监听的IP地址
hosts allow = 127. 192.168.12. 192.168.13. >>>设置仅允许哪些主机可访问
hosts deny = 192.168.12.192.168.1.1/24 >>>拒绝哪些主机可访问
security = user >>> 基于用户认证的访问
share >>> 匿名访问
</code></pre>
<p>共享目录配置</p>
<pre><code>[共享名称]
comment = >>> 描述信息
path = /bj >>> 指定目录名称
browseable = yes >>> 可下载文件
writable = yes >>> 可上传文件
public = yes >>> 允许所有用户访问
write list = user1 >>> 仅允许user1可上传文件
</code></pre>
<p>示例:</p>
<pre><code>环境描述:
Linux 192.168.122.105 Centos 7.2 文件共享服务器
Windows/Linux 客户端
需求:
通过samba软件将本地的/caiwu目录共享, 客户端可通过martin用户访问,仅允许其下载文件
</code></pre>
<ol>
<li>关闭SELinux, 防火墙</li>
</ol>
<p># setenforce 0<br>
# getenforce<br>
Permissive<br>
# vim /etc/sysconfig/selinux</p>
<p># systemctl stop firewalld.service<br>
# systemctl disable firewalld.service</p>
<ol start="2">
<li>安装软件</li>
</ol>
<p># yum install -y samba samba-client</p>
<ol start="3">
<li>编辑配置文件,共享/caiwu目录</li>
</ol>
<p># mkdir /caiwu<br>
# touch /caiwu/{1..5}.mp3</p>
<p># vim /etc/samba/smb.conf</p>
<pre><code>
comment = It is a test
path = /caiwu
browseable = yes
</code></pre>
<ol start="4">
<li>创建共享用户</li>
</ol>
<p># useradd martin<br>
# smbpasswd -a martin<br>
New SMB password:<br>
Retype new SMB password:<br>
Added user martin.</p>
<p># pdbedit -L >>> 查看共享用户<br>
martin:1001:<br>
#</p>
<ol start="5">
<li>启动服务</li>
</ol>
<p># systemctl start smb<br>
# systemctl enable smb</p>
<p># ss -antp | grep smbd<br>
LISTEN 0 50 <em>:139 <em>:</em> users:(("smbd",pid=2804,fd=38))<br>
LISTEN 0 50 <em>:445 <em>:</em> users:(("smbd",pid=2804,fd=37))<br>
LISTEN 0 50 :::139 :::</em> users:(("smbd",pid=2804,fd=36))<br>
LISTEN 0 50 :::445 :::</em> users:(("smbd",pid=2804,fd=35))</p>
<ol start="6">
<li>测试访问</li>
</ol>
<p>Windows客户端:</p>
<pre><code>\\192.168.122.105
取消用户宿主目录的共享
</code></pre>
<p># vim /etc/samba/smb.conf</p>
<p><br>
comment = Home Directories<br>
browseable = no<br>
writable = yes</p>
<p># systemctl restart smb</p>
<p>Linux客户端:</p>
<p># yum install -y samba-client</p>
<p># smbclient //192.168.122.105/caiwu -U martin</p>
<p>配置允许martin用户可上传文件</p>
<ol>
<li>编辑配置文件</li>
</ol>
<p># vim /etc/samba/smb.conf</p>
<pre><code>
...
writable = yes
</code></pre>
<p># systemctl restart smb</p>
<ol start="2">
<li>设置目录的本地权限</li>
</ol>
<p># setfacl -m u:martin:rwx /caiwu/</p>
<p>示例:</p>
<pre><code>通过samba软件将本地的/shichang目录共享,允许martin用户下载文件,允许admin用户上传文件
</code></pre>
<ol>
<li>创建目录,创建共享用户</li>
</ol>
<p># mkdir /shichang<br>
# touch /shichang/{1..5}.jpg<br>
#<br>
# useradd admin<br>
# smbpasswd -a admin<br>
New SMB password:<br>
Retype new SMB password:<br>
Added user admin.<br>
#<br>
# pdbedit -L<br>
martin:1001:<br>
admin:1002:<br>
#</p>
<ol start="2">
<li>编辑配置文件</li>
</ol>
<p># vim /etc/samba/smb.conf</p>
<pre><code>
path = /shichang
browseable = yes
write list = admin
</code></pre>
<p># systemctl restart smb</p>
<p># chown admin /shichang/<br>
# ls -ldh /shichang/<br>
drwxr-xr-x. 2 admin root 66 2月21 12:00 /shichang/<br>
#</p>
<ol start="3">
<li>
<p>测试访问</p>
<p>清除windows的共享缓存</p>
<pre><code> net use * /del
</code></pre>
</li>
</ol>
<p>windows设置网络映射驱动器访问共享</p>
<p>FTP ------- File Transport Protocol 文件传输协议</p>
<p>FTP协议的连接模式:<br>
主动连接<br>
被动连接</p>
<p>软件:vsftpd<br>
配置文件:/etc/vsftpd/vsftpd.conf<br>
服务:vsftpd<br>
端口:21/tcp 命令连接端口<br>
20/tcp 数据连接端口(主动)</p>
<p>FTP根目录:<br>
用户宿主目录</p>
<p>访问方式:<br>
匿名用户访问(ftp)<br>
用户认证的访问</p>
<p>示例:搭建匿名访问的FTP服务器</p>
<ol>
<li>安装vsftpd软件</li>
</ol>
<p># yum install -y vsftpd</p>
<p># systemctl start vsftpd<br>
# systemctl enable vsftpd<br>
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.</p>
<p># ss -antp | grep :21<br>
LISTEN 0 32 :::21 ::😗 users:(("vsftpd",pid=5748,fd=3))</p>
<p>测试访问:</p>
<pre><code>Windows:
ftp://192.168.122.105
FileZilla FTP客户端软件
</code></pre>
<p>允许匿名上传的文件</p>
<p># chmod o+w /var/ftp/pub/</p>
<p>anon_upload_enable=YES >>>允许上传文件<br>
anon_mkdir_write_enable=YES >>>允许上传目录 <br>
anon_other_write_enable=YES >>>允许其他的修改(删除、重命名等)</p>
<p>anon_umask=022 >>>允许其他用户能下载匿名用户的文件</p>
<p>anon_root=/company >>>更改匿名用户的FTP的根目录</p>
<p>本地用户认证的FTP服务</p>
<p>示例: 搭建FTP yum源提供MySQL安装包</p>
<p># ls /rpm/mysql/<br>
mysql-community-client-5.7.16-1.el7.x86_64.rpmmysql-community-libs-compat-5.7.16-1.el7.x86_64.rpm<br>
mysql-community-common-5.7.16-1.el7.x86_64.rpmmysql-community-server-5.7.16-1.el7.x86_64.rpm<br>
mysql-community-libs-5.7.16-1.el7.x86_64.rpm</p>
<p># createrepo /rpm/mysql/</p>
<p># vim /etc/vsftpd/vsftpd.conf</p>
<pre><code>anon_root=/rpm
</code></pre>
<p># systemctl restart vsftpd</p>
<p>使用ftp源:</p>
<p># cat /etc/yum.repos.d/centos.repo</p>
<p><br>
name=centos7u2<br>
baseurl=ftp://172.16.8.100/centos7u2<br>
enabled=1<br>
gpgcheck=0</p>
<p><br>
name=mysql<br>
baseurl=ftp://192.168.122.105/mysql<br>
enabled=1<br>
gpgcheck=0</p>
<p>nfs -------- Network File System 网络文件系统</p>
<p>作用:在Linux服务器间实现数据共享</p>
<p>软件:<br>
nfs-utils<br>
rpcbind</p>
<p># rpm -q rpcbind<br>
rpcbind-0.2.0-32.el7.x86_64</p>
<p># rpm -q nfs-utils<br>
nfs-utils-1.3.0-0.21.el7.x86_64<br>
#</p>
<p>目录导出文件 --- /etc/exports</p>
<p>文件格式:</p>
<pre><code>目录名称 客户端地址(权限)
客户端地址:
IP地址 192.168.1.1
网段 192.168.1.0/24
*
权限:
ro 只读
rw 读写
sync 同步
async 异步
all_squash 客户端所有用户上传的文件的所属均为nfsnobody
root_squash 客户端root用户上传的文件的所属会被映射为nfsnobody
no_root_squash 客户端root用户上传的文件的所属仍为root
anonuid=<number>
anongid=<number>
</code></pre>
<p>示例:</p>
<p>通过nfs共享本地目录/webdata, 允许192.168.122.121以只读方式挂载</p>
<p># mkdir /webdata<br>
# touch /webdata/{1..10}.html</p>
<p># cat /etc/exports<br>
/webdata 192.168.122.121(ro)<br>
#</p>
<p># systemctl restart rpcbind<br>
# systemctl restart nfs-server</p>
<p># systemctl enable nfs-server</p>
<p># showmount -e localhost<br>
Export list for localhost:<br>
/webdata 192.168.122.121<br>
#</p>
<p>客户端:</p>
<p># mount 192.168.122.105:/webdata /www/</p>
<p># ls /www/<br>
10.html1.html2.html3.html4.html5.html6.html7.html8.html9.html</p>
<p>自动挂载:</p>
<h1 id="vim-etcfstab">vim /etc/fstab</h1>
<p>192.168.122.105:/webdata /www nfs defaults 0 0</p>
<p>示例2:</p>
<p>通过nfs共享本地目录/mysqldata,允许192.168.122.121以读写的方式挂载</p>
<p># mkdir /mysqldata<br>
# touch /mysqldata/{1..10}.sql<br>
# chmod o+w /mysqldata/</p>
<p># vim /etc/exports<br>
...<br>
/mysqldata 192.168.122.121(rw)</p>
<p># exportfs -rav<br>
exporting 192.168.122.121:/mysqldata<br>
exporting 192.168.122.121:/webdata<br>
#</p>
<p>客户端:</p>
<p># vim /etc/fstab</p>
<p>192.168.122.105:/mysqldata /database nfs defaults 0 0</p>
<p># mount -a</p>
<p># df -h<br>
文件系统 容量已用可用 已用% 挂载点<br>
/dev/mapper/centos-root 7.3G4.4G3.0G 60% /<br>
devtmpfs 230M 0230M 0% /dev<br>
tmpfs 245M 0245M 0% /dev/shm<br>
tmpfs 245M4.7M240M 2% /run<br>
tmpfs 245M 0245M 0% /sys/fs/cgroup<br>
/dev/mapper/centos-home 2.0G 33M2.0G 2% /home<br>
/dev/vda1 512M141M372M 28% /boot<br>
tmpfs 49M 0 49M 0% /run/user/0<br>
192.168.122.105:/webdata 7.3G3.6G3.8G 49% /www<br>
192.168.122.105:/mysqldata7.3G3.6G3.8G 49% /database</p>
</div>
<div id="MySignature" role="contentinfo">
有志者,事竟成,破釜沉舟,百二秦关终属楚;
苦心人,天不负,卧薪尝胆,三千越甲可吞吴。
想到与得到中间还有两个字——做到。<br><br>
来源:https://www.cnblogs.com/huoxc/p/12850992.html
頁:
[1]