我完全清楚,非 root 用户无法将文件夹的所有者更改为另一个用户,即使该用户拥有该文件夹,除非他们使用sudo
或拥有该CAP_CHOWN
功能。
有没有办法授予特定的非 root 用户权限以通过sudo
或其他命令更改其拥有的目录的所有者,但不允许用户任意更改其不拥有的目录的所有者?
我有一台服务器(以非根“myserver”用户身份运行)并希望它能够为本地用户创建特定目录,并且在完成目录操作后将其所有者更改为所需的用户。
答案1
sudo
没有内置的方法来执行此操作。基本方法是编写一些帮助程序来进行各种检查(用户 X 是否拥有此目录?它是否在预期路径中?权限位是否正常?等等),然后执行chown
.
然后,您允许用户 X 以 root 身份通过 sudo 或文件系统权限运行帮助程序(使帮助程序为 suid root,仅对两个守护程序的组可执行,甚至是具有 ACL 的守护程序用户)。
当然,编写帮助程序时需要考虑到安全性。