CentOS 7下samba服务的简单设置
近日公司内网服务器需要开samba服务给员工使用,用于图纸管理。暂时先设置两个账号,一个普通账号,一个图纸管理员账号。再设置两个共享目录给两种权限账号使用。
假设两个账号为 USER
和 DWG
。两个目录名称为 SMBUSER
和 SMBDWG
。
1、先建立物理文件夹。
公司内网服务器运行网页版图纸管理软件,其图纸预览插件只能读取当前目录及其子目录下的图纸文件,其他目录的文件无法读取,故只能将图纸文件存放在网页根目录下。
我使用apache,所以存放图纸目录设为 /var/www/html/DWG
,所以图纸管理员账号可以访问的物理目录即为前面这个 。
另一个普通账号可以访问的物理目录设为 /share/USER
。
sudo mkdir /var/www/html/DWG
sudo mkdir /share/USER
然后设置相应的权限,将 USER
下的文件归属给 nobody
sudo chown -R nobody:nobody /share/USER
2、设置相应的SElinux权限
sudo chcon -R -t samba_share_t /share/USER
apache的SElinux权限也需要设置,不然无法正常提供图纸管理服务
sudo chcon -R --reference=/var/www/html /var/www/html/DWG
通过上面的设置后,/var/www/html/DWG
的SElinux文件类型是 httpd_sys_content_t
,默认samba是不能共享 httpd_sys_content_t
文件类型的,所以还需要设置samba的SElinux布尔值。
sudo setsebool -P samba_export_all_rw on
3、CentOS 7防火墙设置
CentOS 7默认开启了 fire-wall
防火墙,需要将samba服务端口开放出来
sudo firewall-cmd --permanent --zone=public --add-service=samba
sudo firewall-cmd --reload
4、设置samba的配置文件
打开 /etc/samba/smb.conf
,修改成如下所示
[global]
workgroup = COM #工作组名称随意
security = user #需要密码访问
server string = Samba Server %v
[SMBUSER]
path = /share/USER #物理目录
writable = yes #可写
browseable = yes #可浏览
guest ok = yes
[SMBDWG]
path = /var/www/html/DWG #物理目录
valid users = DWG #可访问的用户列表,多个用户用逗号分隔
write list = DWG #具有可写权限的用户列表,多个用户用逗号分隔
writeable = no #其余用户不可写
最后重启samba服务就大功告成了
sudo systemctl restart smb
sudo systemctl restart nmb