我有这个目录
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”...我不明白为什么我无法更改目录的权限
只有目录的所有者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
用人类的话来说:你试图改变不属于你的财产:无论你是否jenkins在团体中wheel,你都在试图改变root团体 的所有权root,所以你不能这样做。
你可以试试sudo make me a sandwich:
sudo chmod --recursive a+rwx /tmp
Run Code Online (Sandbox Code Playgroud)
/tmp!(注:/tmp,不是 tmp/)