133 votes

Comment exécuter une commande 'sudo' à l'intérieur d'un script ?

Pour faire un patch manuellement je dois taper cette commande

sudo ./playback_delete_data_patch.sh 09_delete_old_data_p.sql  

Il y a un espace juste avant le 09 :

sudo ./playback_delete_data_patch.sh [space] 09_delete_old_data_p.sql

Comment puis-je exécuter ceci à l'intérieur d'un script ?

Il existe également plusieurs autres commandes, mais celle-ci pose problème.

3voto

Sanyam Jain Points 154
#!/bin/bash
# this declares that current user is a sudoer
sudo tee /etc/sudoers.d/$USER <<END
END

# write the content of your script here
sudo npm install hexo-cli -g
mkdir Untitled
sudo apt-get install python

# then to remove the sudo access from the current user
sudo /bin/rm /etc/sudoers.d/$USER
sudo -k

-1voto

evinhas Points 1

Vous pourriez essayer d'ajouter l'utilisateur qui exécute le script au fichier sudoers :

#give permissions to the file
sudo chmod 700 /etc/sudoers.d/useradm

sudo visudo /etc/sudoers.d/useradm

#add the following text, changing "user" but your desired user
user ALL=(ALL)NOPASSWD:ALL

#return the right permissions to the file
sudo chmod 440 /etc/sudoers.d/useradm

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X