我正在使用 shell 脚本创建目录,并且在该目录上使用“chmod g+s”权限,但递归权限失败

我正在使用 shell 脚本创建目录,并且在该目录上使用“chmod g+s”权限,但递归权限失败

我正在 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»

相关内容