linux下的cifs文件系统

一.cifs文件系统:

1.cifs系统:Internet文件共享系统,也称服务器信;适用于MicrosoftWindows服务器和客户端的标准文件和打印机的共享系统息块(SMB)

2.Samba服务:用于将linux文件系统作为CIFS/SMB网络文件进行共享,并将linux打印机作为CIFS/SMB打印机进行共享

 

二.搭建samba服务:
1.配置静态网络和yum源

linux下的cifs文件系统

linux下的cifs文件系统

linux下的cifs文件系统

linux下的cifs文件系统

关闭防火墙       systemctl stop firewalld

linux下的cifs文件系统
下载samba文件共享服务       yum install samba samba-client samba-common -y

linux下的cifs文件系统

linux下的cifs文件系统

修改本地解析       vim /etc/hosts
        添加 本机IP 主机名

linux下的cifs文件系统
开启samba服务       systemctl start smb

linux下的cifs文件系统

2.以匿名用户列出共享文件系统信息       smbclient -L //本机IP

linux下的cifs文件系统

添加用户(必须是系统用户)       smbpasswd -a 系统用户

linux下的cifs文件系统
列出smb用户        pdbedit -L

linux下的cifs文件系统

以某用户身份列出共享文件系统信息       smbclient -L //本机IP -U 用户

linux下的cifs文件系统
删除用户        pdbedit -x 用户

linux下的cifs文件系统
进入smb        smbclient //本机IP/目录 -U 用户
        >ls    ##查看当前目录中文件    
        >!ls    ##列出本地主机文件
        >quit

linux下的cifs文件系统
##进入samba后可执行的命令过少,挂载后在本机使用更为方便快捷
挂载        mount //本机IP/目录 /mnt -o username=用户,password=密码

linux下的cifs文件系统

linux下的cifs文件系统
或永久挂载        vim etc/fstab
     添加 //本机IP/用户 /mnt cifs defaults,username=用户,password=密码 0 0
     mount -a

3.将selinux设置为强制级别         vim /etc/sysconfig/selinux
                                                 selinux=enforcing
                                                 reboot

linux下的cifs文件系统

linux下的cifs文件系统
修改samba配置文件       vim /etc/samba/smb.conf
白名单设置       91 hosts allow = IP

linux下的cifs文件系统

此时在172.25.254.122主机上无法登陆

linux下的cifs文件系统
黑名单设置       92 hosts deny = IP

linux下的cifs文件系统

此时在172.25.254.122主机上无法登陆

linux下的cifs文件系统
修改组别          89 workgroup = 名称

linux下的cifs文件系统

此时Domain后显示即为所修改的workgroup

linux下的cifs文件系统
重启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     ##允许共享目录读写

linux下的cifs文件系统

允许访问家目录        setsebool -P samba_create_home_dirs on
允许家目录作为cifs文件共享setsebool -P samba_enable_home_dirs on

linux下的cifs文件系统

linux下的cifs文件系统

对自己创建的目录的权限设置:
mkdir /目录
touch /目录/文件

修改配置文件   vim /etc/samba/smb.conf

linux下的cifs文件系统
             323 [名称]        ##此名称自行设置,为客户端可以看到的名称

             324 comment = dir from westos    ##自行设置,为客户端可以看到的目录的介绍
             325 path = /目录        ##此路径为设置要访问的目录

linux下的cifs文件系统

修改安全上下文标签         semanage fcontext -a -t samba_share_t '/目录(/.*)?'

刷新        restorecon -RvvF /目录/

重启samba服务        systemctl restart smb.service

linux下的cifs文件系统

 

对根目录的权限设置:
修改配置文件        vim /etc/samba/smb.conf
                            327 [mnt]
                            328 comment = dir from /mnt
                            329 path = /mnt

linux下的cifs文件系统
修改共享目录访问权限          getsebool -a | grep samba
                                            setsebool -P samba_export_all_ro on
重启samba服务      systemctl restart smb.service

linux下的cifs文件系统
##修改selinux  在允许了用户对根目录的访问的同时也允许了用户访问自己创建目录的权限,此修改开放权限过大,如果只需要开启对自己创建目录的访问权限只需要修改安全上下文标签即可。
测试:    smbclient //IP/目录 -U 用户

linux下的cifs文件系统

 

5.vim /etc/samba/smb.conf

linux下的cifs文件系统

##修改后一定要systemctl restart smb.service
添加有效用户    [名称]
        添加valid users = 用户
        或valid users = +用户        ##+,@表示族=组

linux下的cifs文件系统

linux下的cifs文件系统

linux下的cifs文件系统
使共享目录可写    writable = yes

chmod 777 /目录/

linux下的cifs文件系统

linux下的cifs文件系统
限制只有名单中用户可写    write list = 用户
            或write list = +用户        ##+,@表示族=组
(使共享目录可写和限制只有名单中用户可写不同时存在)

linux下的cifs文件系统

linux下的cifs文件系统
是否允许匿名用户登陆    guest ok = yes
             添加126 map to guest = bad user     ##匿名用户映射为guest

匿名用户测试时也需要写上username=guest       mount //172.25.254.122/linux /mnt/ -o username=guest

linux下的cifs文件系统

linux下的cifs文件系统

linux下的cifs文件系统
是否显示共享目录        browseable = no
##设置为no时,只是不显示共享目录,不影响用户的其他使用

linux下的cifs文件系统

linux下的cifs文件系统
使用户以管理员身份登陆    admin users = 用户  

linux下的cifs文件系统

  linux下的cifs文件系统

 

6.多用户登陆:
客户端:下载cifs-utils软件    yum install cifs-utils -y

linux下的cifs文件系统
查看帮助man mount.cifs
vim /root/smbauth(存储用户信息,自行设置目录即可)
1  username=用户1
2  password=密码1

linux下的cifs文件系统
mount //IP/名称 /mnt -o multiuser,credentials=/root/smbauth,sec=ntlmssp
>超级用户登陆:cd /mnt/
        ls

此时可以查看当前目录中文件

linux下的cifs文件系统
>普通用户登陆:cd /mnt/
        ls
此时无法查看当前目录中文件

linux下的cifs文件系统
添加认证用户    cifscreds add -u 用户1 服务端IP

##用普通用户1登陆时添加任意验证用户,即可以在普通用户1登陆时查看共享目录中文件
##用户1为服务端已在samba中存在用户,必须一次输入正确密码,不然cifscreds clear -u 用户1  服务端IP 后才能重新添加认证用户
>此时普通用户1登陆也可以查看到当前目录中文件

linux下的cifs文件系统