有什么方法可以强制文件从父目录继承所有者权限?

S. *_*ung 8 permissions files acl

有没有办法强制在目录中创建的文件从父目录继承所有权?我尝试了粘性位,但这似乎不起作用。

我正在寻找的示例:

drwxrwxr-x www-data somegroup parentdir
Run Code Online (Sandbox Code Playgroud)

当某个用户创建 parentdir/newfile.htm 时:

-rwxrwxr-x www-data somegroup newfile.htm
Run Code Online (Sandbox Code Playgroud)

不是

-rwxr-xr-x someuser somegroup newfile.htm
Run Code Online (Sandbox Code Playgroud)

有什么办法可以做到吗?谢谢!

Ser*_*nyy 6

Linux 有一种称为访问控制列表(ACL)的东西。这是扩展标准 UNIX 权限并对其进行微调的一种方法。优点之一是它确实具有继承性。可以做什么,已被serverfault 上的相关帖子引用,并且在您的特定情况下:

sudo setfacl -Rdm g:somegroup:rwx /path/to/parent
Run Code Online (Sandbox Code Playgroud)

至于强制文件为同一个用户拥有,在Linux上让新文件继承组权限中已经讨论过,但是强制每个文件拥有相同的所有者比强制文件拥有相同的所有者要麻烦得多。组所有权通过 完成setfacl。如果该组与所有者具有完全相同的权限,则没有必要强制具有相同的所有权。当然,您始终可以在文件创建时使用inotifywait和触发chown,但这毫无意义,因为组所有权已经让您可以控制文件。

也可以看看:


May*_*hux 0

据我了解,您的问题(这不是真正的问题)分为两部分。

首先,您要将用户在该目录中创建的文件的所有权直接授予 apache 用户www-data。不能那样做。

在现实生活中,如果你的朋友不想要的话,你不能给他东西!

同样的事情,未经某些用户的许可,您不能将所有权授予他。

那么这里如何解决这个问题:

你还需要做chown

sudo chown www-data newfile.htm
Run Code Online (Sandbox Code Playgroud)

另一个需要的是将文件的权限更改为继承父目录的权限。

这不是一个好习惯,因为目录通常具有可执行权限xcd但是x对于普通文件,使其可执行,并且由于您提到的这些文件归 www-data 所有,这也会使您陷入巨大的麻烦安全威胁,所以我的建议不要这样做

但无论如何,如果您仍然想尝试:看看这两个问题

https://superuser.com/questions/264383/how-to-set-file-permissions-so-that-new-files-inherit-same-permissions

https://superuser.com/questions/151911/how-to-make-new-file-permission-inherit-from-the-parent-directory