在 Ubuntu 上,我希望用户 1 能够读取/写入/执行/删除用户 2 的所有文件/文件夹
我已将它们放在同一组,但似乎不起作用,
解决这个问题的正确方法是什么?
谢谢,
答案1
您需要将他们所在的组分配给用户 2 的所有文件。
chgrp usergroup somefile
然后您需要具有 rwx 的组权限,因此:
chmod g+rwx somefile
其中somefile是user2的文件
答案2
将两个用户放在同一个组中是不够的:默认情况下,除非明确指定(使用chmod g+w
),否则文件不是组可写的。要更改大多数新创建文件的默认权限,请将行添加umask 002
到~user1/.profile
。此外,许多程序会限制通常应保密的文件(密码文件、邮箱等)仅供用户读取;umask 对此没有影响。
大多数情况下,一种可行的方法是使用访问控制列表。首先,确保包含 user2 主目录的文件系统已使用该acl
选项挂载(在 Ubuntu 10.04 上,该选项默认为关闭)。安装该acl
软件包。然后运行以下命令(警告,直接输入到浏览器中),授予 user1 对 user2 主目录中文件的所有访问权限,并默认授予新创建文件的访问权限:
setfacl -m user:user1:rwx -R ~user2
setfacl -d -m user:user1:rwx -R ~user2
如果用户 2 在其主目录之外保存文件,则也将此命令应用于其他目录。
最后,授予 user1 这种直接访问权限可能不是解决潜在问题的最佳方法。更合理的做法可能是只授予 user2 对实际需要共享的文件的访问权限(使用公共组或使用 ACL)。还可以考虑通过 sudo 授予 user2 以 user1 身份运行程序的权限(运行visudo
并添加行user1 ALL = (user2) ALL
)。
答案3
User1 必须是被分配到具有 rwx 权限的组的组成员 (7,就像用户和其他权限中的 whatever 一样,但组权限中列出了 7)。
这有帮助吗?