有没有办法强制目录中创建的文件从父目录继承所有权?我尝试了粘性位,但似乎不起作用。
我正在寻找的示例:
drwxrwxr-x www-data somegroup parentdir
当 parentdir/newfile.htm 由 someuser 创建时:
-rwxrwxr-x www-data somegroup newfile.htm
不是
-rwxr-xr-x someuser somegroup newfile.htm
有什么办法吗?谢谢!
答案1
Linux 有一个叫做访问控制列表 (ACL)。这是扩展标准 unix 权限并对其进行微调的一种方法。其中一个优点是它确实具有继承性。可以做什么,已被相关引用在 serverfault 上发帖,并且对于您的具体情况:
sudo setfacl -Rdm g:somegroup:rwx /path/to/parent
至于强制文件由同一用户拥有,已在在 Linux 上让新文件继承组权限,但是强制每个文件拥有相同的所有者比通过 强制文件拥有相同的组所有权要麻烦得多setfacl
。如果组拥有与所有者完全相同的权限,则没有必要强制相同的所有权。当然,您始终可以在创建文件时使用inotifywait
并触发chown
,但这是没有意义的,因为组所有权已经赋予您对文件的控制权。
也可以看看:
答案2
据我所知,您的问题(实际上并不是问题)分为两部分。
首先,您要将该目录中用户创建的文件的所有权直接授予 apache 用户www-data
。这无法通过这种方式完成。
在现实生活中,如果你的朋友不想要某样东西,你就不能给他!
同样,你不能在未经许可的情况下将所有权交给某些用户。
那么如何解决这个问题呢:
你还需要chown
sudo chown www-data newfile.htm
另一个需要的是将文件的权限更改为继承父目录的权限。
这不是一个好习惯,因为目录通常具有可执行权限x
。cd
但x
对于普通文件,请使其可执行,并且由于您提到的那些文件归 www-data 所有,这也会使您陷入巨大的安全威胁,所以我的建议不要这样做
但无论如何,如果你仍然想尝试:看看这两个问题