Sudo (Français)
sudo (substitute user do)est un programme conçu pour permettre à un administrateur système de déléguer des privilèges à des utilisateurs, et ainsi leur permettre de lancer certaines (ou toutes) commandes en tant que root ou autre utilisateur tout en enregistrant l'utilisation de ces privilèges.
Installation
pacman -S sudo
Configuration
Il faut éditer le fichier /etc/sudoers
avec l'outil visudo
, en root :
# visudo
:wq
On peut utiliser un autre éditeur en utilisant la variable $EDITOR
:
EDITOR=vim visudo
permettra d'utiliser vim à la place de vi
.
Exemples de configuration :
- Autoriser l'utilisateur jean à éteindre l'ordinateur :
jean localhost=/sbin/shutdown -h now
- Autoriser le group wheel à lancer des commandes en root :
%wheel ALL=(ALL) ALL
- Utiliser
sudo
avec le mot de passe root :
Defaults rootpw
- Autoriser l'utilisateur nono à exécuter n'importe quelle commande juste en la précédent de
sudo
, sans même avoir besoin d'entrer un mot de passe (Ne faites cela que dans un cadre privé...) :
nono ALL=(ALL) ALL Defaults:nono !authenticate
Utilisation
Ensuite, on utilise sudo
simplement, sudo
devant les commandes :
$ sudo pacman -Syu
On peut utiliser la commande sudoedit
ou sudo -e
pour éditer un ou plusieurs fichiers. Ces derniers seront d'abord copiés dans des fichiers temporaires avant d'être sauvés sous leurs vrais noms lorsqu'on quitte l'édition.
Mode interactif
Il est possible d'utiliser sudo
en mode interactif via la commande :
$ sudo -i
Avantages
Lancé en mode interactif, le comportement de sudo -i
est très semblable à celui de su, néanmoins, ce terminal est soumis aux restrictions définies dans /etc/sudoers
. Ainsi, si un utilisateur toto
n'a pas les droits adéquats pour redémarrer ou arrêter la machine (ou toute autre commande restreinte à root) tel que défini dans /etc/sudoers
, il ne pourra pas lancer la commande via ce mode, contrairement à l'utilisation de su
.
Les commandes générant des enregistrements dans le journal (comme systemctl
par exemple) sont enregistrés sous le nom de l'utilisateur d'origine, contrairement à su où cet enregistrement a lieu comme s'il avait été lancé par root
.
Invite de commande
Il est également possible de personnaliser l'invite de commande en mode interactif via la variable d'environnement SUDO_PS1
(cette variable est néanmoins surchargée par la variable PS1
pouvant se trouver dans /root/.bash_profile
, /etc/profile
ou encore /etc/bash.bashrc
).
Avancé
Complétion avec bash
Par défaut, la complétion ne fonctionne pas pour sudo
, pour l'activer, il faut ajouter ceci à votre ~/.bashrc
:
complete -cf sudo
Ainsi:
$ sudo pac<TAB>
donnera la liste des choix dont en théorie pacman
.
Lancement d'applications graphiques
Si vous tenez à lancer une application graphique avec sudo, vous pouvez utiliser gksudo
(disponible dans gksuAUR) ou kdesu
(disponible si vous disposez de kdebase-runtimeAUR ).
kdesu
Pour utiliser kdesu
avec sudo
plutôt qu'avec su (comportement par défaut), vous pouvez ajouter dans $HOME/.kde4/share/config/kdesurc
(ou /usr/share/config/kdesurc
pour tous les utilisateurs) :
[super-user-command] super-user-command=sudo