Comment changer d'utilisateur dans un shell Linux
Linux a trois types de comptes : système, utilisateur et root. Un utilisateur se connecte à son compte en saisissant nom d'utilisateur et mot de passe. Les processus système (ex: messagerie) se connectent aussi au démarrage. Le compte root est un compte spécial avec privilèges illimités pour toute opération. Si vous connaissez le mot de passe d'un autre compte et que ce compte autorise les connexions, vous pouvez changer d'utilisateur avec la commande « su », appelée « substitute user », « super user » ou « switch user ».
La commande su
Pour changer d'utilisateur et créer une session comme si l'autre s'était connecté depuis une invite de commande, tapez « su - » suivi d'un espace et du nom d'utilisateur cible. Tapez le mot de passe cible quand demandé. Si vous omettez le tiret, vous vous connectez au compte de l'autre avec vos variables d'environnement, ce qui peut donner des résultats différents. Tapez « exit » et Entrée pour quitter et revenir à la session précédente.
Le compte root
Seuls quelques utilisateurs expérimentés et de confiance peuvent généralement se connecter en root, car root peut lire, modifier et supprimer tout fichier ou paramètre. Pour empêcher un pirate de se connecter en « root », beaucoup de systèmes exigent qu'une session root soit initiée depuis une autre session via « su ». Tapez « su - » sans nom d'utilisateur et Entrée : le système suppose que vous voulez root et demande le mot de passe root.
Risques de sécurité avec su
La commande su exige un comportement contraire à la plupart des politiques de sécurité réseau. Exemple : pour changer d'utilisateur avec su, l'autre doit vous donner son mot de passe. Les administrateurs passant en root doivent partager un unique mot de passe root. Cela peut ne pas poser problème pour un petit réseau amateur, mais c'est un risque inacceptable dans de nombreux réseaux professionnels, et beaucoup de politiques exigent que la commande soit désactivée.
L'utilitaire sudo
L'utilitaire « sudo » est une alternative plus populaire et sécurisée à su. Un fichier de configuration sudo liste les utilisateurs autorisés à basculer vers d'autres comptes (ex: root). Quand un utilisateur préfixe une commande avec « sudo », il saisit son propre mot de passe, et le système exécute seulement cette commande en root. Avec sudo, pas de risque de compromettre le mot de passe root ni d'oublier de quitter le compte root.
