linux下的cifs文件系统
一.cifs文件系统:
1.cifs系统:Internet文件共享系统,也称服务器信;适用于MicrosoftWindows服务器和客户端的标准文件和打印机的共享系统息块(SMB)
2.Samba服务:用于将linux文件系统作为CIFS/SMB网络文件进行共享,并将linux打印机作为CIFS/SMB打印机进行共享
二.搭建samba服务:
1.配置静态网络和yum源
关闭防火墙 systemctl stop firewalld
下载samba文件共享服务 yum install samba samba-client samba-common -y
修改本地解析 vim /etc/hosts
添加 本机IP 主机名
开启samba服务 systemctl start smb
2.以匿名用户列出共享文件系统信息 smbclient -L //本机IP
添加用户(必须是系统用户) smbpasswd -a 系统用户
列出smb用户 pdbedit -L
以某用户身份列出共享文件系统信息 smbclient -L //本机IP -U 用户
删除用户 pdbedit -x 用户
进入smb smbclient //本机IP/目录 -U 用户
>ls ##查看当前目录中文件
>!ls ##列出本地主机文件
>quit
##进入samba后可执行的命令过少,挂载后在本机使用更为方便快捷
挂载 mount //本机IP/目录 /mnt -o username=用户,password=密码
或永久挂载 vim etc/fstab
添加 //本机IP/用户 /mnt cifs defaults,username=用户,password=密码 0 0
mount -a
3.将selinux设置为强制级别 vim /etc/sysconfig/selinux
selinux=enforcing
reboot
修改samba配置文件 vim /etc/samba/smb.conf
白名单设置 91 hosts allow = IP
此时在172.25.254.122主机上无法登陆
黑名单设置 92 hosts deny = IP
此时在172.25.254.122主机上无法登陆
修改组别 89 workgroup = 名称
此时Domain后显示即为所修改的workgroup
重启samba systemctl restart smb.service
测试: smbclient //IP/目录 -U 用户
4.权限设置
getesbool -a | grep samba
##当Selinux=Enforing时:
samba_enable_home_dirs ##允许本地主目录作为cifs文件共享
use_samba_home_dirs ##允许挂载远程cifs文件共享并将其用作本地主目录
samba_share_t ##smb共享目录的selinux安全上下文
samba_export_all_ro ##共享目录只读
samba_export_all_rw ##允许共享目录读写
允许访问家目录 setsebool -P samba_create_home_dirs on
允许家目录作为cifs文件共享setsebool -P samba_enable_home_dirs on
对自己创建的目录的权限设置:
mkdir /目录
touch /目录/文件
修改配置文件 vim /etc/samba/smb.conf
323 [名称] ##此名称自行设置,为客户端可以看到的名称
324 comment = dir from westos ##自行设置,为客户端可以看到的目录的介绍
325 path = /目录 ##此路径为设置要访问的目录
修改安全上下文标签 semanage fcontext -a -t samba_share_t '/目录(/.*)?'
刷新 restorecon -RvvF /目录/
重启samba服务 systemctl restart smb.service
对根目录的权限设置:
修改配置文件 vim /etc/samba/smb.conf
327 [mnt]
328 comment = dir from /mnt
329 path = /mnt
修改共享目录访问权限 getsebool -a | grep samba
setsebool -P samba_export_all_ro on
重启samba服务 systemctl restart smb.service
##修改selinux 在允许了用户对根目录的访问的同时也允许了用户访问自己创建目录的权限,此修改开放权限过大,如果只需要开启对自己创建目录的访问权限只需要修改安全上下文标签即可。
测试: smbclient //IP/目录 -U 用户
5.vim /etc/samba/smb.conf
##修改后一定要systemctl restart smb.service
添加有效用户 [名称]
添加valid users = 用户
或valid users = +用户 ##+,@表示族=组
使共享目录可写 writable = yes
chmod 777 /目录/
限制只有名单中用户可写 write list = 用户
或write list = +用户 ##+,@表示族=组
(使共享目录可写和限制只有名单中用户可写不同时存在)
是否允许匿名用户登陆 guest ok = yes
添加126 map to guest = bad user ##匿名用户映射为guest
匿名用户测试时也需要写上username=guest mount //172.25.254.122/linux /mnt/ -o username=guest
是否显示共享目录 browseable = no
##设置为no时,只是不显示共享目录,不影响用户的其他使用
使用户以管理员身份登陆 admin users = 用户
6.多用户登陆:
客户端:下载cifs-utils软件 yum install cifs-utils -y
查看帮助man mount.cifs
vim /root/smbauth(存储用户信息,自行设置目录即可)
1 username=用户1
2 password=密码1
mount //IP/名称 /mnt -o multiuser,credentials=/root/smbauth,sec=ntlmssp
>超级用户登陆:cd /mnt/
ls
此时可以查看当前目录中文件
>普通用户登陆:cd /mnt/
ls
此时无法查看当前目录中文件
添加认证用户 cifscreds add -u 用户1 服务端IP
##用普通用户1登陆时添加任意验证用户,即可以在普通用户1登陆时查看共享目录中文件
##用户1为服务端已在samba中存在用户,必须一次输入正确密码,不然cifscreds clear -u 用户1 服务端IP 后才能重新添加认证用户
>此时普通用户1登陆也可以查看到当前目录中文件