Execute o script como um usuário diferente do root [closed]

8

Do usuário root, como posso dar permissões a outro usuário para executar o arquivo /root/script.sh?

A ideia é executar o script como sudo -u user1 /root/script.sh

    
por bulkmoustache 05.03.2014 / 22:59

3 respostas

7

Devo dizer que nunca gostei de sudo (especialmente suas configurações). Simples velho su :

su -c 'command' - user

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

    
por 05.03.2014 / 23:18
0

O usuário deve ter

  1. permissão de execução para todo o caminho do diretório (aqui /root only)

  2. executar permissão para o arquivo

  3. permissão de leitura para o arquivo

Pode ser uma boa ideia 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 deixando root como proprietário e grupo, defina as permissões de acesso simples ( chmod ) como 770 e adicione user1 com ACLs ( setfacl ).

    
por 05.03.2014 / 23:09
0

Se o seu script estiver localizado no diretório raiz,

$ LC_ALL=C ls -ld /root
drwx------ 17 root root 4096 Mar  5 20:14 /root

user1 só pode ser raiz.

Sua entrada /etc/sudoers será parecida com

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 -u root em seu comando sudo .

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ê quiser que um grupo de usuários o execute, então deixe como está.

    
por 05.03.2014 / 23:12