#1 Le 29/05/2006, à 10:18
- thx_84
[résolu]script shell: mise à jour et extinction automatique
Hello!
Je viens de créer un petit script qui me permet d'installer les dernières mises à jour puis d'éteindre l'ordinateur
#!/bin/sh
echo "Mon premier script"
echo "Mise à jour:"
set -e
sudo apt-get update && sudo apt-get upgrade -y || exit
apt-get clean
echo "Et maintenant, on fait dodo!!!"
sudo shutdown -h now
Mais je me demande s'il est possible d'inclure le mot de passe dans le script. Du coup, le script serait autonome et je n'aurais pas besoin de rester devant l'ordi pour taper le mot de passe...
Quelqu'un aurait une idée?
edit: modifications en tenant compte des propositions contenus dans ce fil
Dernière modification par thx_84 (Le 01/06/2006, à 10:56)
ben, comme on fait pour signer sur l'ordi??? mince, je viens de ficher en l'air l'écran avec mon stylo...
Hors ligne
#2 Le 29/05/2006, à 18:28
- bertrand0
Re : [résolu]script shell: mise à jour et extinction automatique
La solution la plus simple serait de faire:
sudo tonscript
Comme ça, le mot de passe tu le tapes au moment de lancer le script, et le reste se fait en root, donc plus besoin de mot de passe.
EDIT: Si tu tiens à tout prix à insérer le mot de passe, il y a une option de sudo qui permet de lire le mot de passe depuis l'entrée standard. Mais il serait plus judicieux d'insérer une directive dans sudoers pour autoriser l'execution du script sans mot de passe, de façon à éviter la compromission de ce dernier.
Dernière modification par bertrand0 (Le 29/05/2006, à 18:33)
Ceux qui écrivent comme ils parlent, quoiqu'ils parlent très bien, écrivent mal.
Buffon, Discours sur le style
Hors ligne
#3 Le 29/05/2006, à 19:13
- cep_
Re : [résolu]script shell: mise à jour et extinction automatique
J'avais du trouver une solution un jour pour lancer à plusieurs reprises un script sur la machine de quelqu'un avec les droits admin.
Pressé par le temps, j'avais fait un fichiers caché .mot_ps avec les droits 600 dans lequel il y avait le mot de passe non crypté. On pourrait aussi faire un cryptage léger et décryptage à la volée.
Pour le script ensuite j'avais ceci :
sudo -S xargs --< .mot_passe la_commande_à_réaliser
Comme dit bertrand0 tu peux aussi paramétrer sudoers
#4 Le 29/05/2006, à 19:42
- doohan
Re : [résolu]script shell: mise à jour et extinction automatique
pas mal ce petit script pour aller se coucher plus tot
tu pourrais aller le mettre sur le site script linux, le concepteur cherche des contributeurs, je te l'aisse le lien
http://www.linuxscripts.c.la/
Hors ligne
#5 Le 29/05/2006, à 22:26
- thx_84
Re : [résolu]script shell: mise à jour et extinction automatique
EDIT: Si tu tiens à tout prix à insérer le mot de passe, il y a une option de sudo qui permet de lire le mot de passe depuis l'entrée standard. Mais il serait plus judicieux d'insérer une directive dans sudoers pour autoriser l'execution du script sans mot de passe, de façon à éviter la compromission de ce dernier.
comment on fait?
pas mal ce petit script pour aller se coucher plus tot
tu pourrais aller le mettre sur le site script linux, le concepteur cherche des contributeurs, je te l'aisse le lien
http://www.linuxscripts.c.la/
pas mal la pub déguisée concernant le script, ça m'évite de rester devant l'ordi en attendant qu'il est terminé les mises à jour. Script quasiment indispensable sous dapper(enfin, vu que c'est pratiquement stable, faudra plutôt s'en servir avec edgy )
ben, comme on fait pour signer sur l'ordi??? mince, je viens de ficher en l'air l'écran avec mon stylo...
Hors ligne
#6 Le 29/05/2006, à 23:44
- thx_84
Re : [résolu]script shell: mise à jour et extinction automatique
bon après test, j'ai un autre problème:
si je veux interrompre la mise à jour par un ctrl+c, il passe directement à la commande suivante(donc l'ordinateur s'éteint). est ce qu'il y a moyen de modifier ça?
ben, comme on fait pour signer sur l'ordi??? mince, je viens de ficher en l'air l'écran avec mon stylo...
Hors ligne
#7 Le 30/05/2006, à 18:02
- bertrand0
Re : [résolu]script shell: mise à jour et extinction automatique
bertrand0 a écrit :EDIT: Si tu tiens à tout prix à insérer le mot de passe, il y a une option de sudo qui permet de lire le mot de passe depuis l'entrée standard. Mais il serait plus judicieux d'insérer une directive dans sudoers pour autoriser l'execution du script sans mot de passe, de façon à éviter la compromission de ce dernier.
comment on fait?
Pour sudo ? Fais "man sudoers", c'est une des docs les plus précises que j'ai lues.
En bref, il faut éditer sudoers en tapant une commande du style: "sudo visudo"
une fois dans l'éditeur, il suffit de rajouter une ligne appropriée, par exemple:
%admin ALL=(root) NOPASSWD: /usr/local/bin/monscript ""
Autorise les utilisateurs du groupe admin, à executer monscript (le chemin complet est impératif) sans argument (les guillemets), en tant que root et sans avoir à taper de mot de passe.
Pour des raisons de sécurité, monscript doit évidemment appartenir à root, et ne pas être éditable par les utilisateurs...
par la suite, il n'y a qu'à taper "sudo monscript", et le mot de passe ne sera jamais demandé.
Le principal intérêt de cette méthode est que le mot de passe n'est pas stocké en clair, ce qui réduit les risques de fuites, côté sécurité, et évite d'avoir à changer quoi que ce soit quand l'utilisateur change son mot de passe, côté pratique.
Dernière modification par bertrand0 (Le 30/05/2006, à 18:03)
Ceux qui écrivent comme ils parlent, quoiqu'ils parlent très bien, écrivent mal.
Buffon, Discours sur le style
Hors ligne
#8 Le 30/05/2006, à 18:11
- bertrand0
Re : [résolu]script shell: mise à jour et extinction automatique
bon après test, j'ai un autre problème:
si je veux interrompre la mise à jour par un ctrl+c, il passe directement à la commande suivante(donc l'ordinateur s'éteint). est ce qu'il y a moyen de modifier ça?
Tu ajoutes "set -e" au début de ton script, et tu rajoutes "|| exit" à la fin de ta liste &&.
Ceux qui écrivent comme ils parlent, quoiqu'ils parlent très bien, écrivent mal.
Buffon, Discours sur le style
Hors ligne
#9 Le 30/05/2006, à 22:10
- thx_84
Re : [résolu]script shell: mise à jour et extinction automatique
Tu ajoutes "set -e" au début de ton script, et tu rajoutes "|| exit" à la fin de ta liste &&.
sur la même ligne?
edit: je me réponds à moi-même, oui ça doit être sur la même ligne, autrement le script plante...
ben, ça y est je crois que mon script est bon, je m'en vais le proposer sur le site mentionné plus haut dans le thread... merci à tous!
Dernière modification par thx_84 (Le 30/05/2006, à 22:32)
ben, comme on fait pour signer sur l'ordi??? mince, je viens de ficher en l'air l'écran avec mon stylo...
Hors ligne
#10 Le 30/05/2006, à 22:22
- abetsic
Re : [résolu]script shell: mise à jour et extinction automatique
commande1 && commande2
commande2 n'est executé que si commande1 se finit bien, donc dans le cas où tu interrompt commande1 (par ctrl-C par exemple) commande2 n'est pas executé
jettes un coup d'oeil à "man bash", c'est bien expliqué
Dernière modification par abetsic (Le 30/05/2006, à 22:24)
Hors ligne