我正在 shell 脚本中创建具有以下权限的目录
chmod -R 770 /user/mydir
chown -R user:mygroup /user/mydir
chown -R g+s /user/mydir
然而每当我创建一个新的目录时/user/mydir
,我都会获得权限drwxrwsr-x
。对于目录,如果我在其下创建任何新文件,我会看到文件的权限为-rw-rw-r--
.但这应该是-rwxrwx---
,因为我正在付出chmod 770
。我不确定我做错了什么,请帮助我解决问题。
答案1
在目录上设置 gid 仅设置组,而不设置模式。
您将需要文件访问控制列表。看在 gnu/linux 上设置文件权限等有哪些不同方法
setfacl -R -m o:-,d:o:- «dir-name»
解释:
setfacl
用于设置facl(文件访问控制列表)。-R
通过现有的子文件重复。-m
修改列表o:-
将其他设置为全部清除d:o:-
将其他默认设置为全部清除。
还可以得到sgid的效果,并保证用户始终拥有权限(无论所有者是谁)。
setfacl -R -d -m u:user:rwx,g:mygroup:rwx,o:- «dir-name»
setfacl -R -m u:user:rwx,g:mygroup:rwx,o:- «dir-name»