两个用户如何成为文件的所有者?

8 linux permissions

根据标题,我必须创建一个文件,例如:

/home/john/file.ini
Run Code Online (Sandbox Code Playgroud)

我创建了一个用户和一个组,myuser并将mygroup它们设置为 this 的所有者和组file.ini

chown myuser:mygroup file.ini
Run Code Online (Sandbox Code Playgroud)

我有另一个用户名为mymain. 该用户必须能够读取该文件。如何更改权限以允许这样做?

重要提示:我只想允许“mymain”用户读取此文件,而不是所有其他用户。

所以 myuser(文件的所有者)和 mymain 应该有访问权限。

Joa*_*uer 12

在传统的 Unix 文件权限系统中这是不可能的:一个文件只有一个所有者。您可以创建一个仅包含应该具有访问权限的两个用户的组,并使该组成为文件的所有者组(并为该组提供所需的权限)。然而,这种方法有一些管理开销(不是每个用户都可以创建一个组并将其他用户放入其中)。

许多(大多数)现代文件系统都支持 ACL,但是它们并不太难使用。如果您想使用 POSIX ACL 授予另一个用户读取 ( r) 和写入 ( w) 权限,那么您可以使用以下命令:

setfacl -m user:mymain:rw file.ini
Run Code Online (Sandbox Code Playgroud)

两个注意事项:

  • 并非总是安装必要的工具。在 Ubuntu/Debian 上,它们位于acl包 ( sudo apt-get install acl)
  • 即使使用的文件系统支持 ACL,也可能是您的本地文件系统在不支持 ACL 的情况下挂载。在这种情况下,您需要修改挂载参数以启用它(ext4例如,这仅意味着附加,acl到 中的挂载选项/etc/fstab)。


seh*_*ehe 5

您应该确保用户mymain是组的成员mygroup并授予组权限,例如

chmod g+r <filename>
Run Code Online (Sandbox Code Playgroud)

一些文件系统实现了 ACL(访问控制列表),这些可能证明对您更有用,但它们超出了我在这里回答的范围。您将需要阅读企业 (ADS) 设置中的 ACL_

添加

当然,从技术上讲,两个用户不能同时是同一个文件的所有者。此外,如果你想模仿,你应该给组完全许可,也许只为这两个“所有者”创建一个特殊的组,这实际上模仿所有权的程度将取决于平台(旧式 UNIX-en在允许 chmod/chown 的规则中往往非常严格)