Executar script como um usuário diferente da raiz [fechado]

11

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

bulkmoustache
fonte
1
A questão não está completamente clara: "você é root e deseja executar o script como usuário1" ou "você é usuário1 e deseja executar o script como root"? Se o primeiro for o caso, qual é o problema com o sudocomando que você escreveu?
Michas
Confirasu(1)
vonbrand

Respostas:

10

Devo dizer que nunca gostei sudo(especialmente suas configurações). Velho claro su:

su -c 'command' - user

Executado a partir do root, não solicitará a senha.

orion
fonte
0

O usuário deve ter

  1. executar permissão para todo o caminho do diretório ( /rootsomente aqui )

  2. executar permissão para o arquivo

  3. permissão de leitura para o arquivo

Pode ser uma boa idéia deixar /rootintocado e criar (ou usar) um diretório diferente para essa finalidade (por exemplo /usr/local/bin). Você pode tornar user1o único usuário com permissão para executar o script, tornando-o o proprietário do arquivo ou deixá-lo rootcomo proprietário e grupo, defina as permissões de acesso simples ( chmod) 770e adicione user1com ACLs ( setfacl).

Hauke ​​Laging
fonte
0

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/sudoersentrada 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 rootseu sudocomando.

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á.


fonte