不允许更改权限

Gla*_*ost 0 permissions

我有这个目录

drwxrwxrwx 2 root root       4096 May  3 21:06 tmp
Run Code Online (Sandbox Code Playgroud)

我是用户“jenkins”,我尝试:

chmod -R a+rwx tmp/
Run Code Online (Sandbox Code Playgroud)

但我得到

 chmod: changing permissions of `tmp/': Operation not permitted
Run Code Online (Sandbox Code Playgroud)

为什么?jenkins 也属于组“wheel”...我不明白为什么我无法更改目录的权限

A.B*_*A.B 5

只有目录的所有者root可以更改其权限,允许或禁止其他用户使用该目录(请注意,root作为超级用户,无论如何都可以更改任何内容的权限,无论所有者与否)。

如果用户jenkins在wheel组中,这可能意味着,根据具体的操作系统,用户jenkins被允许使用su或sudo(例如:RHEL)暂时成为root。因此,也许需要詹金斯的密码,应该可以工作:

sudo chmod -R a+rwx tmp/
Run Code Online (Sandbox Code Playgroud)

否则(需要root的密码):

su -c 'chmod -R a+rwx tmp/'
Run Code Online (Sandbox Code Playgroud)

如果您的操作系统以特殊方式处理,则处于组Wheel中,不会给予任何直接许可。它授予使用旨在实现此效果的各种机制(如上文所述)以root(或其他用户)身份执行操作的权利,而不是直接执行。susudo


Fab*_*bby 5

用人类的话来说:你试图改变不属于你的财产:无论你是否jenkins在团体中wheel,你都在试图改变root团体 的所有权root,所以你不能这样做。

你可以试试sudo make me a sandwich:

sudo chmod --recursive a+rwx /tmp
Run Code Online (Sandbox Code Playgroud)

但你不应该!

因为每个人都已经拥有这些权利了/tmp!

(注:/tmp,不是 tmp/)

  • 你对xkcd(+1)进行了深入研究,延迟了答案!更严重的是,考虑到`tmp/`目录不是+t,我怀疑它是`/tmp`(哼哼,它不应该在OP中被编辑) (3认同)