A correção
-
Em
/etc/sudoers, certifique-se de que a linha ainda esteja lá:jose ALL= NOPASSWD: /home/jose/sync.shNÃO apague essa linha!
-
Opcional : no seu script, remova o
sudos na frente de cada comando usando exapmle:sed -i 's/^\(\s*\)sudo\s*//g' /home/jose/sync.shIsso 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.she, em seguida, ser solicitada uma senha. -
Execute o seu script com:
sudo /home/jose/sync.shsudonã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 .