Eu tenho o seguinte script simples que alterou a propriedade das pastas
more hola_config.sh
#!/bin/bash
chown -R hola:pola /home/darna
chmod -R 775 /home/darna
em /etc/sudoers adicionei o seguinte (o usuário super_hola é como um superusuário)
super_hola ALL=(ALL) NOPASSWD:ALL
mas quando executo o script como
su super_hola
whoami
super_hola
sudo -u super_hola ./hola_config.sh
Recebo Operação não permitida do chmod do script
Exemplo:
chmod: changing permissions of ‘/home/darna/linux.cvg: Operation not permitted
a questão é
por que o superusuário super_hola
não pode alterar a permissão como usuário root e o que consertar na minha configuração para habilitar o usuário – super_hola para fazer isso
aqui os IDs de usuário e grupo
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
Se quiser alterar a propriedade de arquivos ou permissões de arquivos que não são seus, você deve executar o script como usuário root.
Como usuário root, o script seria executado com
./hola_config.sh
.Como
super_hola
usuário, ele seria executado comsudo ./hola_config.sh
.Se você já é root, não faz sentido se tornar
super_hola
.Não faz sentido executar o script
super_hola
usandosudo -u super_hola ./hola_config.sh
, pois você já é esse usuário (e esse usuário não tem permissão para fazer as alterações necessárias de qualquer maneira).