我有以下简单的脚本可以更改文件夹的所有权
more hola_config.sh
#!/bin/bash
chown -R hola:pola /home/darna
chmod -R 775 /home/darna
在 /etc/sudoers 中我添加了以下内容(super_hola 用户就像超级用户)
super_hola ALL=(ALL) NOPASSWD:ALL
但是当我运行脚本时
su super_hola
whoami
super_hola
sudo -u super_hola ./hola_config.sh
我从脚本中得到“chmod 不允许操作”
例子:
chmod: changing permissions of ‘/home/darna/linux.cvg: Operation not permitted
问题是
为什么超级用户super_hola
无法像 root 用户那样更改权限,以及我需要修复配置中的哪些部分才能让用户 super_hola 这样做
这里是用户和组 ID
id super_hola
uid=1001(super_hola) gid=1001(pola) groups=1001(pola),982(docker)
grep super_hola /etc/group
docker:x:982:super_hola
id -G super_hola
1001 982
如果您想更改文件的所有权或不属于您的文件的权限,则必须以 root 用户身份运行该脚本。
作为 root 用户,该脚本将使用 运行
./hola_config.sh
。作为
super_hola
用户,它将被运行sudo ./hola_config.sh
。如果您已经是 root 身份,那么成为 就没有意义了
super_hola
。super_hola
使用运行脚本是没有意义的sudo -u super_hola ./hola_config.sh
,因为您已经是该用户(并且该用户无权进行必要的更改)。