1案例1:配置SMB文件夹共享
1.1问题
本例要求在虚拟机server0上发布两个共享文件夹,具体要求如下:
- 此服务器必须是STAFF工作组的一个成员
- 发布目录/common,共享名为common
- 发布目录/devops,共享名为devops
- 这两个共享必须是可浏览的,只有example.com域内的客户端可以访问
- 用户harry对共享common只读,密码是migwhisk
- 用户kenji对共享devops只读密码是atenorth
- 用户chihiro对共享devops可读写,密码是atenorth
1.2 方案
Samba的用途:为多个客户机提供共享使用的文件夹。
Samba服务端:软件包samba、系统服务smb
Samba客户端:软件包samba-client和cifs-utils、客户端工具smbclient
传输协议及端口:TCP 139、TCP445
Samba服务端配置文件:/etc/samba/smb.conf
Samba共享账号:存在独立的账号数据文件夹里,必须有同名系统账号(方便给权限)
Samba账号管理工具:
- pdbedit -a 用户名
- pdbedit -L [用户名]
- pdbedit -x 用户名
测试Samba共享资源: - smbclient -L 服务器地址 【密码为空(直接回车)】
- smbclient -U 用户名 //服务器地址/共享名 【需要密码】
1.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:在服务器server0上发布Samba共享文件夹
1)安装软件包samba
[root@server0 ~]# yum -y install samba
.. ..
2)创建共享账号
添加共享账号harry,密码为migwhisk:
[root@server0 ~]# useradd harry
[root@server0 ~]# pdbedit -a harry //根据提示设好密码migwhisk
new password:
retype new password:
添加共享账号kenji,密码为atenorth:
[root@server0 ~]# useradd kenji
[root@server0 ~]# pdbedit -a kenji //根据提示设好密码atenorth
new password:
retype new password:
添加共享账号chihiro,密码为atenorth:
[root@server0 ~]# useradd chihiro
[root@server0 ~]# pdbedit -a chihiro //根据提示设好密码atenorth
new password:
retype new password:
确认共享账号:
[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 //默认配置
samba_export_all_ro --> off
samba_export_all_rw --> off
[root@server0 ~]# setsebool -P samba_export_all_rw=on //永久打开设置
[root@server0 ~]# getsebool -a | grep ^samba_exp //查看结果
samba_export_all_ro --> off
samba_export_all_rw --> on
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 = chihiro
6)启动系统服务smb,并设置开机自启
[root@server0 ~]# systemctl restart smb
[root@server0 ~]# systemctl enable smb
ln -s '/usr/lib/systemd/system/smb.service' '/etc/systemd/system/multi-user.target.wants/smb.service'
[root@server0 ~]# netstat -antpu | grep smb
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 4709/smbd
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 4709/smbd
步骤二:在客户机desktop0测试Samba共享资源
1)安装软件包samba-client
[root@server0 ~]# yum -y install samba-client
.. ..
2)浏览目标主机提供了哪些共享资源
[root@desktop0 ~]# smbclient -L server0.example.com
Enter root's password: //此处无需输入密码,直接回车
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
Sharename Type Comment
--------- ---- -------
common Disk
devops Disk
IPC$ IPC IPC Service (Samba Server Version 4.1.1)
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
Server Comment
--------- -------
Workgroup Master
--------- -------
3)连接到目标主机的共享目录
[root@desktop0 ~]# smbclient -U harry //server0.example.com/common
Enter harry's password: //输入harry的密码
Domain=[STAFF] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls //检查是否可列出目录内容
. D 0 Sun Nov 27 03:07:29 2016
.. D 0 Sun Nov 27 03:07:32 2016
40913 blocks of size 262144. 27826 blocks available
smb: \> quit //退出smb:\>交互环境
[root@desktop0 ~]#