Samba共享服务
                – 用途:为客户机提供共享使用的文件夹
                – 协议:SMB(TCP 139)、CIFS(TCP 445)
             客户端访问服务端资源会遇到的四个问题:
                1,服务端,服务的访问控制
                2,服务端,防火墙
                3,服务端,SELinux策略
                4,服务端,本地权限
            SELinux策略,布尔值(开启或关闭)
                • getsebool-a 查看所有 SELinux 开关
                • setsebool 控制 SELinux 开关
                   需要加 -P 选项才能实现永久设置
            配置SMB文件夹共享
                 • 所需软件包:samba
                 • 系统服务:smb
                   配置文件:/etc/samba/smb.conf
                 • Samba用户 —— 专用来访问共享文件夹的用户
                     --采用独立设置的密码
                     --但需要提前建立同名的系统用户(可以不设密码)
                如果需要设置密码:
                      • 使用 pdbedit 管理工具
                       – 添加用户:pdbedit -a 用户名
                       – 查询用户:pdbedit -L [用户名]
                       – 删除用户:pdbedit -x 用户名
                要求在虚拟机 server0 上发布两个共享文件夹,具体要求如下:
                 1,此服务器必须是 STAFF 工作组的一个成员
                 2,发布目录 /common,共享名为 common
                 3,发布目录 /devops,共享名为 devops
                 4,这两个共享必须是可浏览的,只有 example.com 域内的客户端可以访问
                 5,用户 harry 对共享 common 只读,密码是 migwhisk
                 6,用户 kenji 对共享 devops 只读,密码是 atenorth
                 7,用户 chihiro 对共享 devops 可读写,密码是atenorth                             
              服务端:
                         1,安装软件包samba
                          [root@server0 ~]# yum  -y  install  samba
                         2,创建共享账号
                             添加共享账号harry,密码为migwhisk:
                             [root@server0 ~]# useradd  harry
                             [root@server0 ~]# pdbedit  -a  harry           
                                                             //根据提示设好密码migwhisk
                            添加共享账号kenji,密码为atenorth:    
                             [root@server0 ~]# useradd  kenji
                             [root@server0 ~]# pdbedit  -a  kenji        
                                                             //根据提示设好密码atenorth
                             添加共享账号chihiro,密码为atenorth:
                             [root@server0 ~]# useradd  chihiro
                             [root@server0 ~]# pdbedit  -a  chihiro    
                                                             //根据提示设好密码atenorth
                             确认共享账号:
                              [root@server0 ~]# pdbedit  -L
                            harry:1003:
                              chihiro:1005:
                              kenji:1004:
                        3,准备共享文件夹
                            [root@server0 ~]# mkdir  /common
                            [root@server0 ~]# mkdir  /devops
                            [root@server0 ~]# setfacl  -m  u:chihiro:rwx  /devops   
                                                            //配置写入权限
                        4,调整SELinux开关策略,允许发布可写的Samba共享资源
                            [root@server0 ~]# getsebool  -a  |  grep ^samba_exp      
                                                             //默认配置
                            [root@server0 ~]# setsebool  -P  samba_export_all_rw=on   
                                                          //永久打开设置
                            [root@server0 ~]# getsebool  -a  |  grep ^samba_exp     
                                                         //查看结果
                        5,配置共享目录
                            [root@server0 ~]# vim  /etc/samba/smb.conf
                            [global]
                            workgroup = STAFF
                             .. ..
                            [common]
                            path = /common
                            hosts allow = 172.25.0.0/24
                            [devops]
                            path = /devops
                           hosts allow = 172.25.0.0/24
                           write list = chihir
                        6,启动系统服务smb,并设置开机自启
                             [root@server0 ~]# systemctl  restart  smb
                             [root@server0 ~]# systemctl  enable  smb
                             [root@server0 ~]# netstat  -antpu  |  grep  smb
            客户端:
                        1,安装软件包samba-client
                             [root@server0 ~]# yum  -y  install  samba-client
                        2,浏览目标主机提供了哪些共享资源
                             [root@desktop0 ~]# smbclient  -L  server0.example.com
                        3,连接目标主机的共享目录
                            [root@desktop0 ~]# smbclient  -U  harry  //server0.example.com/common
                多用户Samba挂载
                          Samba客户端的multiuser挂载:
                             支持切换访问Samba共享的用户身份,
                             但不需要重新挂载共享资源。
                             挂载参数需要添加“multiuser,sec=ntlmssp”,
                             客户机上的普通用户可以通过cifscreds命令提交新的身份凭据。
                         在客户端挂载Samba共享目录,需要软件包cifs-utils的支持。
                         为访问网络资源配置开机挂载时,注意添加参数“_netdev”,
                                                     表示等客户机网络配置可用以后才挂载对应资源。
                            1,创建挂载点
                                [root@desktop0 ~]# mkdir  /mnt/dev
                            2,安装cifs-utils软件包
                                [root@desktop0 ~]# yum  -y  install  cifs-util
                            3,配置开机挂载
                                 [root@desktop0 ~]# vim  /etc/fstab
                                 //server0.example.com/devops    /mnt/dev        cifs
                                            username=kenji,password=atenorth,_netdev     0     0
                            4,测试挂载配置
                                 [root@desktop0 ~]# mount  -a
                                 [root@desktop0 ~]# df  -hT  /mnt/dev
                           5,修改挂载配置,添加多用户支持
                                 [root@desktop0 ~]# vim  /etc/fstab
                                //server0.example.com/devops    /mnt/dev    cifs 
                                             username=kenji,password=atenorth,multiuser,sec=ntlmssp,_netdev 0 0
                                 [root@desktop0 ~]# umount  /mnt/dev                 //卸载此共享
                                 [root@desktop0 ~]# mount  /mnt/dev                 //重新挂载此共享
                            6,验证多用户访问
                                  切换到普通用户student验证,无权访问挂载点/mnt/dev:
                                  [root@desktop0 ~]# su - student
                                  [student@desktop0 ~]$ ls /mnt/dev
                                ls: cannot access /mnt/dev: Permission denied
                                  以共享用户chihiro身份提交新的访问凭据,再次验证,对挂载点/mnt/dev可读写:
                                  [student@desktop0 ~]$ cifscreds  -u  chihiro  add  server0.example.com
                                  Password:                                           //输入共享账号chihiro的密码
                                  [student@desktop0 ~]$ touch  /mnt/dev/a.txt
                                  [student@desktop0 ~]$ ls  /mnt/dev/a.txt 
                                  /mnt/dev/a.txt