两个用户怎么能成为一个文件的所有者呢?

两个用户怎么能成为一个文件的所有者呢?

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

/home/john/file.ini

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

chown myuser:mygroup file.ini

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

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

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

答案1

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

然而,许多(大多数)现代文件系统都支持 ACL,而且它们使用起来并不难。如果您想使用 POSIX ACL 为其他用户授予读取 ( r) 和写入 ( w) 权限,则可以使用以下命令:

setfacl -m user:mymain:rw file.ini

两个注意事项:

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

答案2

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

chmod g+r <filename>

一些文件系统实现了 ACL(访问控制列表),这些可能对你更有用,但它们超出了我在这里的回答范围。你想要了解 ACL在企业 (ADS) 设置中_

添加

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

相关内容