A correção
-
Em
/etc/sudoers
, certifique-se de que a linha ainda esteja lá:jose ALL= NOPASSWD: /home/jose/sync.sh
NÃO apague essa linha!
-
Opcional : no seu script, remova o
sudo
s na frente de cada comando usando exapmle:sed -i 's/^\(\s*\)sudo\s*//g' /home/jose/sync.sh
Isso não é necessário, mas prova um ponto. Você pode deixar os arquivos como estão, se quiser poder executá-los como usuário regular, sem
sudo /home/jose/sync.sh
e, em seguida, ser solicitada uma senha. -
Execute o seu script com:
sudo /home/jose/sync.sh
sudo
não solicitará uma senha . É importante ter o sudo na frente de sua chamada para o script.
Também por motivos de segurança , execute os seguintes comandos no seu script:
sudo chown root:root /home/jose/sync.sh
sudo chmod o-rwx /home/jose/sync.sh
Dessa forma, ninguém pode editar seu script sem a senha de root. Isso é importante porque todo mundo que fica em seu computador como um método livre e sem senha para executar comandos como root.
O problema
O problema com a maneira como você fez isso é que você concedeu permissões para executar o script com privilégios de root, mas na verdade não o executa como root usando sudo
.
A única coisa que você executa como root são os dois comandos que têm "sudo" na frente deles (que são, é claro, umount /home/jose/pc1
e mount -t smbfs //172.18.2.100/Downloads /home/jose/pc1
). Mas esses dois comandos de montagem NÃO têm permissões de root (e não devem, apesar de pl1nk , descrever como você pode dar permissão de root sua resposta ), pois eles não estão listados em /etc/sudoers
para ter NOPASSWD
para o usuário jose
.