例如,我创建一个文件夹/tmp/foo。我授予它权利775。因此,为此我执行chmod -R 775 /tmp/foo. 我使所有者成为用户myuser和组mygroup:chown -R myuser:mygroup /tmp/foo。这是清楚和可以理解的。但是有一个任务:里面的所有新文件和文件夹(有条件的无限嵌套)/tmp/foo必须继承它的所有者和访问权限。例如,如果我创建一个文件,/tpm/foo/bar.txt它应该具有相同的权限775和所有者myuser组mygroup。即使该文件是由另一个用户从mygroup.
我试图对chmod -R 4775 /tmp/foo在文件755和所有者otheruser组中创建的权限做同样的事情otheruser。用户和组的名称是有条件的。我究竟做错了什么?
简而言之,继承所有者是不可能的(不更改 linux 内核),并且在大多数情况下没有实际意义。在 linux 上,就像在大多数类 unix 操作系统中一样,
setuid在目录上设置位没有任何效果 - 所有者始终是文件的创建者。另一方面,您可以继承文件组,为此您可以使用以下位
setgid:然后子目录/文件将继承 group 和 bit
setgid,但权限仍将由用户进程确定。umask为了设置默认权限,您可以设置默认ACL值。这些值的作用类似于给定目录中的~umask(即'y的补码
umask),在创建文件/子目录时修改进程请求的权限。那些。任何进程都可以请求创建具有较少权限的文件,但通常大多数程序会尝试创建具有权限0666和目录的文件0777。这些值也被子目录继承。