用户需求配置比较复杂的文件共享权限,我这里记录一些比较关键的知识点,使用samba+acl一起来实现。
1、装包,这里不赘述
2、在/etc/samba/smb.conf文件底部添加如下:
[test]
path = /file/test
valid users =@test1,@test2
browseable = Yes
writeable = Yes
guest ok = No
read only = Yes
write list = @test1,@test2
create mask = 0700
directory mask = 0700
有两组用户组,test1和test2,权限这里设置成700,后面会做详细解释。
接下来,test目录下面有子目录test1,需要test1用户组和test2用户组都可以访问test1目录,test1用户组可读写,test2只读,使用acl设置子文件夹:
setfacl -m g:test1:rwx -R /fileshare/test/test1
setfacl -m d:g:test1:rwx -R /fileshare/test/test1
setfacl -m g:test2:rx -R /fileshare/test/test1
setfacl -m d:g:test2:rx -R /fileshare/test/test1
这时,test1目录下面有test1-1和test1-2两个目录,其中test1-1只能访问test1-1,test2只能读test1-2:
setfacl -m g:test1:rwx -R /fileshare/test/test1/test1-1
setfacl -m d:g:test1:rwx -R /fileshare/test/test1/test1-1
setfacl -m g:test2:rx -R /fileshare/test/test1/test1-2
setfacl -m d:g:test2:rx -R /fileshare/test/test1/test1-2
在test1目录中,test1用户组的用户可以创建子目录,但是所创建的子目录只能由test1用户组读写,这就是刚刚文件夹权限700配置+将acl规则都配置成default的作用,要完成这个需求,两个配置缺一不可。