LINUX系统下CIFS文件系统
CIFS(Common Internet File System)文件系统,也叫通用网络文件系统;它可以使一台主机访问远程主机上共享出去的文件。CIFS使用的C/S模式(客户端向服务器端发出请求,服务器端接受并作出回应)。CIFS是公开的开放的SMB(server messages block,服务信息块)协议。SMB现在在局域网上用于服务器文件访问和打印的协议。
(一)SAMBA实现文件共享
二、SAMBA的安装和使用
1).首先,在服务器端进行文件共享前,要安装一个samba软件。 (Samba是在linux和linux系统上实现SMB协议的一个免费软件)
yum install samba samba-client samba-common -y
systemctl start smb ##启动smb服务
2)安装好之后,添加smb用户
pdbedit -L ##查看已有的sam用户
smbpasswd -a student ##添加用户,且该用户要在系统中存在
3)使用smb用户登陆使用
smbclient -L //172.25.254.121 -U student ##查看可以共享的目录(student)
smbclient //172.25.254.121/student -U student ##登陆,要输入密码,可以查看到共享文件内容
注释:要是在客户端连接有问题的时候,可以加入本地解析
vim /etc/hosts
172.25.254.121 apache.example.com
使用smb用户进入共享目录, 不可以进行文件的建立和删除;若是想进行那些操作,就需要挂载使用。(三可以实现)
三、共享目录中文件的创建并使用
1)mount //172.25.254.121/student /mnt/ -o username=student,password=niu ##使用smb用户student进行挂载
注释:永久挂载:vim /etc/fstab
/172.25.254.121/student /mnt cifs defaults,uername=student,password=niu 0 0
mount -a ##刷新 ,可以查看
2)对共享目录执行文件的建立和删除
四.samba对共享文件权限的限制
1)rpm -qc samba-common ##查看smb服务的配置文件所在位置
2)修改配置文件,限制可以访问共享student文件的主机(此时主机状态enforcing)
vim /etc/samba/smb.conf
hosts allow=172.25.254.21 ##允许21主机访问共享文件,但不可以ls进行查看
systemctl restart smb.conf
3).在主机172.25.254.121中连接结果如下:(连接不允许)
在172.25.254.21主机连接如下:(允许连接)
注释:此时21主机是不可以对student文件内容进行查看的,要修改samba中部分参数的状态
4)在smb服务器上对smb中开启端口的状态更改,实现内容的查看
getsebool -a |grep samba ##查看samba中的开启状态
setsebool -P samba_create_home_dirs on
setsebool -P samba_enable_home_dirs on ##打开者两个状态之后,就可以访问student用户的内容。
5)对21主机测试结果如下:
五、对新建的文件的设定
1)新建目录和文件:mkdir /xniu
touch /xniu/file1
2)修改主配置文件,把新建的共享目录添加进去
vim /etc/samba/smb.conf
[linux] ##显示共享目录的名字,自己取
comment=dir from xniu ##提示信息
path=/xniu ##共享文件的绝对路径
3)完成之后,还是不可以访问改共享目录,此时需要修改安全上下文为samba服务相一致
semanage fcontext -a -t samba_share_t '/xniu(/.*)?'
restorecon -RvvF /xniu/ ##刷新
ls -Zd /xniu/ ##查看目录的安全上下文信息,与samba中安全上下文一致。
4)修改之后结果如下:(可以显示/xniu/中内容)
在21主机进行测试:(
六、对系统目录/mnt/共享的访问设定
1)编辑主配置文件
vim /etc/samba/smb.conf ##在配置文件中添加如下信息
[mnt]
comment=dir from mnt
path=/mnt
2) 同样,只可以查看到共享目录,不可以列出目录下的内容。需进行如下修改
setsebool -P samba_export_all_ro on ##修改更大的权限
gersebool -a | grep samba ##查看修改后的参数状态
3)显示结果如下:(此刻的/mnt目录安全上下文没有改变,还是可以访问)
4)若要对系统目录进行读写,需要进行如下修改:
setsebool -P samba_export_all_rw on
补充:共享目录的其他参数:
valid users = @student ##表示student用户组可以执行挂载操作
valid users = student ##表示只有student用户可以使用(修改linux的可用用户为student,结果如下所示)
writable = yes ##用户对共享目录目录可写
write list = student ##可写的对象是student
guest ok=yes ##表示匿名用户可以挂载
browseable = no ##是否可以显示
admin users = student ##添加共享目录的管理员,(创建出来的用户组是student)
(二)NFS实现文件共享
七、NFS的安装和使用(当客户端和服务器端都是linux系统)
1)服务器端执行步骤如下:
yum install nfs-utils.86_64 ##安装软件nfs-utils
systemctl start nfs ##启动服务
vim /etc/export ---> /xniu *(rw,sync) ##编辑共享目录/xniu和共享所有数据 且可读写
exportfs -rv ##刷新(不可以使用restart.因为客户端正在挂载该设备。)
2)客户端的操作如下:
showmount -e 172.25.254.121 ##显示连接情况
mount 172.25.254.121:/xniu /mnt/ ##进行挂载使用 (若出现权限问题,修改/xniu目录权限为777即可)
df ##显示挂载情况
3)若想要在客户端实现自动挂载,可以安装软件autofs.x86_64;客户端具体操作如下
yum install autofs.x86_64 -y
systemctl start autofs
cd /net/172.25.254.121/xniu/ ##可以直接进入共享目录中(df查看到它已经自动挂载了)
注释:当退出挂载目录时,过一会挂载会自动取消,也可以在/etc/autofs.conf中修改退出后自动卸载时间。
4)在客户端修改默认挂载目录,即只需要切换到目录/opt/nfs/newdir就可以实现挂载,进入共享目录
vim /etc/auto.master --> /opt/nfs /etc/auto.nfs ##/opt/nfs为共享目录/xniu的上级目录
vim /etc/auto.nfs --> newdir -ro 172.25.254.121:/xniu ##实现目录的挂载为只读
systemctl restart autofs.service
cd /opt/nfs/newdir ##切换到目录下,显示共享目录的内容
注释:在客户端进行文件创建出现权限问题,应该修改两处的wr。
服务器端的参数的修改:
/xaut *(sync,rw,anonuid=1000,anongid=1001) ##对目录的访问为读写,在服务器端生成的文件用户和用户组分别为1000,1001
no_root_squash ##表示再客户端生成文件是当前用户的
/xniu *(sync) 172.25.254.100(rw,sync,no_root_squash) ##两个不同主机有不同的访问限制
八、客户端用户认证登陆
在服务器端进行安装:
1)yum install cifs-utils -y
2) vim /root/smbauth ---> username= student password=niu
3) mount //172.25.254.121/linux /mnt -o multiuser,credentials=/root/smbauth,sec=ntlmssp
4) cifscreds add -u enen 172.24.254.121 ##除了载认证文件里面的用户登陆时,要通过认证。(且用户必须时smb用户)
5)cifscreds clear -u enen 172.25.254.121 ##删除后才可以再次通过认证