Do usuário root, como posso conceder permissões para outro usuário para executar o arquivo /root/script.sh?
A ideia é executar o script como sudo -u user1 /root/script.sh
su(1)
Do usuário root, como posso conceder permissões para outro usuário para executar o arquivo /root/script.sh?
A ideia é executar o script como sudo -u user1 /root/script.sh
su(1)
Respostas:
O usuário deve ter
executar permissão para todo o caminho do diretório ( /root
somente aqui )
executar permissão para o arquivo
permissão de leitura para o arquivo
Pode ser uma boa idéia deixar /root
intocado e criar (ou usar) um diretório diferente para essa finalidade (por exemplo /usr/local/bin
). Você pode tornar user1
o único usuário com permissão para executar o script, tornando-o o proprietário do arquivo ou deixá-lo root
como proprietário e grupo, defina as permissões de acesso simples ( chmod
) 770
e adicione user1
com ACLs ( setfacl
).
Se o seu script estiver localizado no diretório raiz, então
$ LC_ALL=C ls -ld /root
drwx------ 17 root root 4096 Mar 5 20:14 /root
user1
só pode ser raiz.
Sua /etc/sudoers
entrada será semelhante a
Cmnd_Alias SCRIPT=/root/script.sh
# user who is allowed executing /root/script.sh
%user ALL = (ALL) SCRIPT
Você normalmente editaria o arquivo com visudo
Você também não precisa colocar o -u root
seu sudo
comando.
O %
significa o grupo de usuários. Quando você o deixa de fora, somente o usuário tem permissão para executar o comando. Se você deseja que um grupo de usuários o execute, saia como está.
sudo
comando que você escreveu?