有这么一个需求:
在selinux不关闭的情况下,为ip为192.168.80.128的主机搭建一个samba服务器。samba用户为space,密码为123456,为客户机提供一个名字为share的文件夹,这个文件夹在/之下名字为public。
samba可以用于linux和windows之间的文件共享,是由windows反向编译而产生的,因此samba有许多漏洞,所以selinux和samba水火不容。
samba基于smb(用户验证通信协议),拥有自己独特的文件系统cifs
samba的特点是:基于系统用户之上的,采用独立的密码(可以和登录系统的密码不一样)
1.安装samba相关包:
yum -y install samba
2.创建samba账号,并设置密码:
useradd space
pdbedit -a space 添加samba用户并且设置密码
pdbedit -L 查看samba用户
pdbedit -x space 删除samba账户
3.创建共享目录,修改配置文件/etc/samba/smb.conf:
mkdir /public
vim /etc/samba/smb.cof
[share] #共享文件名
path = /public #共享文件的路径
重启服务 system restart smb
4.连接:
在windows上只需要输入 \\192.168.80.128 然后输入账号密码即可连接。
在linux上进行连接需要挂载共享文件夹
linux上挂载:
yum -y install cifs-utils #安装cifs文件系统
mkdir /opt/nsd
mount -o user=space,pass=123456 //192.168.80.128/share /opt/nsd
连接以后发现共享文件夹share无法访问,因此需要修改selinux的安全策略。
5.修改SELinux策略:
布尔值策略:selinux为每个服务的每个功能提供了一个开关,只有两种状态,分别是开和关。
getsebool -a 查看所有服务的布尔值。
getsebool -a | grep samba 得到的结果如下:
samba_export_all_ro --> off 所有用户的read权限是off状态,所以用户才不能访问。
修改samba_export_all_ro为on:
setsebool samba_export_all_ro on
结果如下:
之后重启samba服务,systemctl restart smb,这样就可以访问这个文件夹了。
写总结的第五天!!!