L’utilitaire su
(abréviation de substitute ou switch user) vous permet d’exécuter des commandes avec les privilèges d’un autre utilisateur, par défaut l’utilisateur root.
L’utilisation de su
est le moyen le plus simple de basculer vers le compte administratif dans la session de connexion actuelle. C’est particulièrement pratique lorsque l’utilisateur root n’est pas autorisé à se connecter au système via sshor en utilisant le gestionnaire d’affichage de l’interface graphique.
Dans ce tutoriel, nous allons expliquer comment utiliser la commande su
.
Comment utiliser la commande su #
La syntaxe générale de la commande su
est la suivante :
su ]
Lorsqu’elle est invoquée sans aucune option, le comportement par défaut de su
est d’exécuter un shell interactif en tant que root :
su
Vous serez invité à saisir le mot de passe root, et s’il est authentifié, l’utilisateur qui exécute la commande devient temporairement root.
Les variables d’environnement session shell (SHELL
) et home (HOME
) sont définies à partir de l’entrée de l’utilisateur substitut /etc/passwd
, et le répertoire actuel n’est pas modifié.
Pour confirmer que l’utilisateur est changé, utilisez la commande whoami
:
whoami
La commande imprimera le nom de l’utilisateur qui exécute la session actuelle du shell :
root
L’option la plus couramment utilisée lors de l’invocation de su
est -
-l
--login
). Cela fait du shell un shell de connexion avec un environnement très similaire à une vraie connexion et change le répertoire courant :
su -
Si vous voulez exécuter un autre shell à la place de celui défini dans le fichier passwd
, utilisez l’option -s
--shell
. Par exemple, pour passer en root et exécuter le shell zsh
, vous devez taper :
su -s /usr/bin/zsh
Pour préserver tout l’environnement (HOME
SHELL
USER
, et LOGNAME
) de l’utilisateur appelant, invoquez la commande avec l’option -p
--preserve-environment
.
su -p
Lorsque l’option -
est utilisée, -p
est ignorée.
Si vous souhaitez exécuter une commande en tant qu’utilisateur de substitution sans lancer un shell interactif, utilisez l’option -c
--command
. Par exemple, pour invoquer la commande ps
en tant que root, vous devez taper :
su -c ps
Pour basculer vers un autre compte utilisateur, passez le nom de l’utilisateur en argument à su
. Par exemple, pour passer à l’utilisateur tyrion
, vous devez taper :
su tyrion
Sudo vs. Su #
Sur certaines distributions Linux comme Ubuntu, le compte utilisateur rootest désactivé par défaut pour des raisons de sécurité. Cela signifie qu’aucun mot de passe n’est défini pour root, et que vous ne pouvez pas utiliser su
pour passer à root.
Une option pour passer à root serait de faire précéder la commande su
de sudo
et de saisir le mot de passe de l’utilisateur actuellement connecté :
sudo su -
La commande sudo
permet d’exécuter des programmes en tant qu’autre utilisateur, par défaut l’utilisateur root.
Si l’utilisateur est accordé avec sudo
assess, la commande su
est invoquée en tant que root. Exécuter sudo su -
puis taper le mot de passe de l’utilisateur a le même effet que d’exécuter su -
et de taper le mot de passe de root.
Lorsqu’elle est utilisée avec l’option -i
sudo
exécute un shell de connexion interactif avec l’environnement de l’utilisateur root :
sudo -i
sudo -i
revient essentiellement à exécuter su -
.
L’avantage d’utiliser sudo
par rapport à su
est que le mot de passe root n’a pas besoin d’être partagé entre plusieurs comptes utilisateurs administratifs.
Avec sudo
, vous pouvez également permettre aux utilisateurs de n’exécuter que des programmes spécifiques avec les privilèges de root.
Conclusion #
su
est un utilitaire de ligne de commande qui vous permet de devenir temporairement un autre utilisateur et d’exécuter des commandes avec l’utilisateur de remplacement.