哪些用户(除了 root 之外)可以更改 Linux 中的文件权限?

哪些用户(除了 root 之外)可以更改 Linux 中的文件权限?

基本上:当我作为非root用户执行chmod文件时,什么时候我会得到该命令的“权限被拒绝”,什么时候不会?文件的哪个属性允许或禁止我更改它的权限?

我认为这是文件所有者,在这里询问,因为我只是在努力了解底层的基本概念。

答案1

长话短说:如果要chmod在 GNU/Linux 上运行文件,您需要是 root 或文件的所有者。

来自修改(2)(chmod 系统调用)手册页:

调用进程的有效UID必须与文件的所有者,或者进程必须具有特权(Linux:它必须具有 CAP_FOWNER能力)。

来自能力(7)手册页:

CAP_FOWNER

  • 绕过通常需要进程的文件系统 UID 与文件的 UID 匹配的操作的权限检查(例如 chmod(2)、utime(2)),不包括 CAP_DAC_OVERRIDE 和 CAP_DAC_READ_SEARCH 涵盖的操作; [...]

来自设置事实(1)手册页:

权限

文件所有者和具有 CAP_FOWNER 能力的进程被授予修改文件 ACL 的权限。这类似于访问文件模式所需的权限。 (在当前的 Linux 系统上, root 是唯一的用户CAP_FOWNER能力。)

相关内容