团队需要搭建samba服务共享资源,要求:
1、用户分为管理员、私人用户、公用用户
2、两个共享文件夹:public为公用目录,管理员、私人用户、公用用户登陆后可读写;private为私人目录,管理员可管理,私人用户授权后访问指定文件夹,拥有读写权利
搭建步骤:
sudo apt-get install samba
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
sudo vim /etc/samba/smb.conf
配置方法一:
在smb.conf后加入配置(多个):
[folder1]
comment = folder comment
path = /xxx/xxx
public = no
valid users = admin, person
write list = xxx
create mask = 0777
directory mask = 0777
该方法可针对用户配置不同路径,但是用户在链接时会在多个文件中选择
配置方法二:
在smb.conf的[global]下增加include = /etc/samba/%U.smb.conf
在/etc/samba/文件中创建用户名.smb.conf文件
用户名.smb.conf配置与方法一相同
该方法可针对登陆的用户显示不同的文件夹。但是访问同级目录的某些文件夹时,也需要配置多个文件,无法显示文件层级结构
比如:Folder文件包含item1, itme2, item3文件,用户只能访问item1, item3的某个子文件
配置方法三:
在smb.conf加入一个配置,然后针对文件夹设置用户权限管理
chown -R liyi.liyi /data/samba/
chmod -R 700 /data/samba/
setfacl -R -m u:fengwuwu:rx /data/samba/
setfacl -R -m u:fengwuwu1:rwx /data/samba/
该方法可以显示文件层级结构,但是对于用户只对/private/dataset/item1有读写权限时,其他用户在/private下建立子目录,该用户仍能读
解决方法:
配置smb.conf时
create mask = 0700
directory mask = 0700