Bjo*_*orn 5 linux chown ubuntu
TL;DR:为什么我的操作不被允许?我该如何解决这个问题?
我正面临一个我无法解决的问题。我正在以用户 a:group a) 创建一个目录,我想将其更改为用户 b:group a。我不明白为什么不允许此操作。这就是正在发生的事情:
user a@foo:~$ mkdir /home/user b/foo/test
uber a@foo:~$ chmod 0777 /home/user b/foo/test
user a@foo:~$ ls -alF /home/user b/foo/ | grep test
drwxrwxrwx 2 user a group a 4096 Jan 6 19:53 test/
user a@foo:~$ chown user b:group a /home/user b/foo/test
chown: changing ownership of `/home/user b/foo/test': Operation not permitted
Run Code Online (Sandbox Code Playgroud)
(为简单起见,我更改了用户名和组名)
其他可能相关的事情:
我很想知道为什么不允许进行此操作,以及如何解决此问题(不使用 sudo 的解决方案是加分项)?
小智 12
如果您是根用户(或具有 CAP_CHOWN Posix 功能),则只能更改文件的所有权。这是因为赠送文件会引发一些安全问题(例如,如果启用了磁盘配额,则可以填充用户 b 配额)。
如果允许,请使用 sudo chown 并且它会起作用。
但是,您可以将所属组更改为您所属的组,因此您应该能够 chgrp "group b" "/home/user b/foo/test",这可能是与用户共享文件的替代方法b 无需成为 root,这取决于您要实现的目标。
要获得更灵活的权限,您可能需要查看 ACL。