Il est déconseillé d'utiliser sudo inconsidérément sans en remanier la configuration par défaut.
Exemple :
Pour éviter cet inconvénient, porte ouverte à l'infection par des virus et des vers, veillez à configurer votre sudo selon le paragraphe : Configuration de sécurité élémentaire
Voilà un logiciel permettant de lancer des commandes root en maintenant un terminal user ouvert.
Quand on utilise sudo, il est important de bien comprendre comment fonctionnent le shell et ses opérateurs de redirection et de condition.
Pour le shell, la commande passée à sudo et elle seule, (pas les opérateurs donc) est vue comme un argument du programme sudo.
Pour exécuter une expression du shell avec sudo, il faut spécifier un shell comme commande et l'expression comme paramètre de celle-ci.
sudo commande > fichier
est interprété en distinguant les arguments (ici la commande de son application) comme :
[sudo lacommande] > [lefichier]
et NON comme deux ensembles composés de :
[sudo] [lacommande > lefichier]
Dans la même veine :
sudo commande1 && commande2
est interprété comme :
[sudo lacommande1] && [lacommande2]
sans appliquer le sudo sur lacommande2 donc.
Merci à Walker29 et raleur pour avoir initié ces précisions sur le forum là :
Qu'une pluie de choco df leur soit à tous deux prescrit…
Quand ce sera possible bien sûr !
apt-get update && apt-get install sudo
Si vous avez plus simple, faite-le savoir !
Passer obligatoirement par la commande visudo pour configurer sudo. L'utilitaire visudo vérifie la syntaxe du fichier /etc/sudoers
avant d'enregistrer celui-ci.
Taper :
visudo
Sous la ligne :
Defaults env_reset
Ajoutez :
Defaults timestamp_timeout=0
En mettant le timeout à 0, les droits root ne seront plus utilisables dès que vous aurez validé l'exécution de votre commande.
Pour réserver l'utilisation de sudo à mon_nom seulement, écrivez :
Defaults:mon_nom tty_tickets
Ici, mon_nom est le nom que vous utilisez pour vous connecter à votre session.
Merci à Asmodée pour cette indication précise !
Defaults:All tty_tickets
C'est la configuration préconisée pour tous les utilisateurs de sudo débutant.
Sous la ligne :
root ALL=(ALL:ALL) ALL
écrivez :
badaboum ALL=(ALL:ALL) ALL
(badaboum illustrant ici votre nom d'utilisateur mon_nom, par exemple…)
Ainsi, badaboum sera le seul utilisateur autorisé à se servir de la commande sudo dans un terminal.
Tapez une commande root comme celle-ci par exemple :
sudo fdisk -l
Le mot de passe de l'user sera alors demandé et non plus celui de root :
[sudo] password for badaboum: <//Taper ici le passwd de cet user//>
Et la commande s'exécute !
Autoriser user à exécuter toutes les commandes via sudo mais que sudo reboot ne demande pas le mot de passe (faire 2 lignes) :
nom_user ALL=(ALL) ALL nom_user ALL=(ALL) NOPASSWD: /usr/sbin/reboot
voir : iptable et autres sécurités évoluées.
Sous la ligne root ALL=(ALL) ALL
, écrivez seulement :
badaboum ALL=NOPASSWD: ALL
(badaboum étant votre nom d'utilisateur mon_nom, par exemple…)
À partir de maintenant, vous pouvez quitter le shell root et faire le reste sous votre nom avec sudo sans plus taper de mot de passe.
Tapez une commande root mais sous votre user ainsi :
sudo fdisk -l
Sous la ligne :
Defaults env_reset
Décommentez (ou rédigez) cette commande :
%sudo ALL=(ALL:ALL) ALL
Il vous sera alors possible d'ajouter chaque utilisateur que vous voulez au groupe sudo pour leur faire partager les droits sudo.
Mettons que vous ayez un pote… un vrai hein… nommé ploumploum par exemple. Pour l'ajouter à la commande sudo, il suffira de taper :
adduser ploumploum sudo
Et il y sera pareillement maintenant !
On met la petite soeurette tagada ?
Alors on le fait ainsi :
adduser tagada sudo
Je vous laisse ajouter l'user tsointsoin si vous le voulez bien…
Ce tuto est illustré sous la célèbre musique du captnfab :
ploumploum badaboum tagada tsointsoin...
Tchibâââ !
Il est ainsi possible d'accomplir :
Il est à noter que si toutes les opérations d'administrations peuvent se faire sous sudo, le passage par su option trait (-) est plus confortable pour des opérations multiples et longues à s'effectuer.
Merci à Y316 pour sa relecture des tutos et la pertinence de ses interrogations postés sur le forum concernant la terminologie de ceux-ci.
On veut donner à deux utilisateurs le droit d'installer/enlever des paquets et de pouvoir éteindre/redémarrer le système.
/etc/sudoers
ci-dessous n'est pas complet. Seul les éléments illustrant cet exemple ont été mis en évidence.
Pour ce faire, on éditera le fichier /etc/sudoers ainsi :
visudo
# # This file MUST be edited with the 'visudo' command as root. # # See the man page for details on how to write a sudoers file. # Defaults env_reset # Définition d'un Alias pour deux utilisateurs User_Alias MESADMINS = jojo,zozo # Définition de deux Alias de commandes Cmnd_Alias ETEINDRE = /sbin/shutdown, /sbin/reboot, /sbin/halt Cmnd_Alias PAQUETS = /usr/bin/dpkg, /usr/bin/apt-get, /usr/bin/aptitude # Les utilisateurs faisant partie de l'Alias MESADMINS peuvent installer/enlever des paquets et # redémarrer/éteindre le système. MESADMINS ALL = ETEINDRE, PAQUETS
utiliser sudo dans une tâche cron, par nature non interactive, est une aberration. Si la tâche doit s'exécuter avec les privilèges root, il faut la créer avec root. Merci raleur
On peut aussi passer root avec sudo en utilisant l'option -i ainsi:
sudo -i
Le passwd de l'user est réclamé et l'on devient Superutilisateur sur son système.
Pour quitter ce privilège, utiliser le raccourci clavier :
Ctrl d
Depuis le tuto de captnfab, là:
http://wiki.chezlefab.net/tuto_nix/installation_squeeze#rompre_la_rootine
nôtre 'pitaine au long cours préféré sur DF !
Vous l'auriez trouvé vous : “Rompre la rootine” ?
- Tant de poësie émeut…