Root-su-sudo
L'utilisateur root
Sur les systèmes unix et linux existe un utilisateur privilégié, appelé parfois superutilisateur: root Cet utilisateur à tous les droits sur tous les fichiers, et en particulier les fichiers systèmes, c'est lui qui lance les tâches systèmes (en particulier la première de toutes init). Cet utilisateur à toujours pour identifiant unique 0, et possède son propre groupe (root).Cet utilisateur est donc fondamental pour le système. Il devra être protégé par un mot de passe béton, et ne devra être connecté que le strict minimum pour effectuer des tâches d'administration. On préférera déléguer certaines tâches d'administration basiques (sauvegarde par ex) à un autre utilisateur. Autre conséquence, on ne lancera sous cet utilisateur que le minimum de processus, et on s'assurera que ceux-ci soient mis à jour coté sécurité.
La commande su
su veut dire "substitute user". Elle permet en ligne de commande de se changer temporairement en un autre utilisateur. Cette commande vous demandera bien évidemment le mot de passe de l'utilisateur sous lequel vous voulez travailler. exemple:su toto vous transformera en utilisateur toto pour exécuter les commandes suivantes (à condition que toto vous ait donné son mot de passe) Il existe un cas particulier; si vous tapez su sans préciser d'utilisateur, c'est comme si vous aviez utilisé "su root", c'est un raccourci. Ne pas oublier de faire exit lorsque vous en avez fini avec cet utilisateur, surtout si celui-ci est root! Vous pouvez définir un 'timeout' qui vous "sortira" automatiquement au bout d'un certain temps. Editez le fichier /root/.profile
export TMOUT=30 readonly TMOUT
La commande kdesu (gksu)
Cette commande est strictement équivalente à su, mais en mode graphique. kdesudo peut par exemple être utilisé avec mplayer pour lire un fichier situé dans le /home d'un autre utilisateur qui n'a pas donné l'accès en lecture aux autres (mais vous devez dans ce cas connaître son mot de passe). Ou bien pour lancer synaptic depuis votre environnement graphique courant.
La commande sudo
Cette commande ("substitute user do") permet de donner de façon permanente des droits à un ou plusieurs utilisateurs sur un ou plusieurs programmes. Ces droits sont définis dans le fichier /etc/sudoers. Je prendrait l'exemple de la commande poweroff. Il est pratique via sudo d'autoriser un utilisateur courant à utiliser cette commande sans mot de passe pour éteindre la machine; et ce n'est pas dangereux pour le système. Autre exemple souvent cité: les sauvegardes. sudo permet de donner à quelques utilisateurs l'autorisation d'utiliser un logiciel de sauvegarde qui doit normalement être lancé avec les droits root. Là encore, pas de risque de casser la machine. On peut faire beaucoup de chose avec sudo, et surtout des bêtises! C'est la solution de facilité qu'il faut éviter si une autre solution existe. La pire des erreurs serait de donner les droits root sur tous les programmes, sans mot de passe (c'est possible avec sudo et certaines distributions le font par défaut!)
La configuration de sudo se trouve dans le fichier /etc/sudoers
Le fichier sudoers est bien sûr personnalisable, il s'ouvre avec la commande
# visudo
Autoriser tous les utilisateurs à éteindre la machine:
ALL ALL=NOPASSWD: /sbin/shutdown
Donner à votre utilisateur tous les pouvoirs donnés par sudo;
utilisateur ALL=(ALL) ALL
Il est recommandé de prendre des précautions et d'ajouter ce qui suit à votre "sudoers"
Defaults:ALL timestamp_timeout=0, tty_tickets
La première ne laisse pas la possibilité de passer une seconde commande sans redemander le mot de passe, la seconde empêche d'en passer une depuis une autre console.
Pour vérifier la syntaxe de votre fichier sudoers:
# sudo -v