Como obter o privilégio sudo no shell script? [duplicado]

-1

como posso obter privilégios sudo através do script de shell sem digitar a senha? Exemplo:

[user@user Desktop]$ ./script.sh 
[user@user Desktop]# 

qual comando devo experimentar no script.sh? Eu não quero adicionar no arquivo sudoers. Por favor me ajude. Obrigado pelo seu valioso tempo.

    
por Dinesh Riosis 13.07.2016 / 13:02

1 resposta

0

você teria que alterar o arquivo sudoers (ou adicionar um novo arquivo ao /etc/sudoers.d/) para permitir que o usuário "user" execute este script sem senha:

user  ALL=(ALL:ALL) NOPASSWD: /home/user/Desktop/script.sh

se você não quiser executar o script.sh inteiro como root, você precisa mencionar todos os comandos dentro do script.sh que você irá incluir no sudo. de alguma forma, é mais legível se você usar o recurso de alias:

Cmnd_Alias SCRIPT_CMDS = /sbin/poweroff, /sbin/reboot, /sbin/halt
user ALL=(ALL:ALL) NOPASSWD: SCRIPT_CMDS

EDITAR

Se você criar algum script que produza a senha no stdout, você pode usar o parâmetro askpass:

sudo -A /path/to/password-output-script /some/command/to/be/run/as/root

senão isso pode ser de interesse para você (da sudo man page):

% bl0ck_qu0te%     
por Phillip -Zyan K Lee- Stockmann 13.07.2016 / 13:04