Que vous soyez sur Ubuntu, Debian, Mint, Fedora ou tout autre distribution Linux, vous pouvez utiliser la commande su qui est native.
su (switch user) est une commande qui permet de s’identifier avec un autre utilisation ou passer une commande avec un autre utilisateur dans un terminal.
Vous pouvez donc à tout moment basculer et passer sur un autre utilisateur.
Dans ce tutoriel, je vous montre comment utiliser la commande su avec des exemples sur Linux.
Table des matières
sudo VS su : les différences
sudo (substitute user do) est une commande qui permet d’exécuter une ou plusieurs commandes sous un autre utilisateur.
Ainsi la commande sudo accorde un accès ponctuel ou limitée à la fonctionnalité racine.
Typiquement, la commande sudo est utilisée pour exécuter rapidement une commande administrative, puis revenir aux autorisations régulières du compte d’utilisateur.
Dans la plupart des distributions Linux, elle permet a un utilisateur dans un groupe administrateur d’exécuter des commandes root.
Mais on peut très bien, par exemple, créer un groupe www et permettre d’exécuter des commandes pour administrer un serveur WEB.
su (switch user) de s’identifier sous un autre utilisateur dans un terminal.
Vous pouvez alors agir comme si vous étiez identifier directement avec ce dernier.
Pour y parvenir, il faut connaître le mot de passe de cet utilisateur.
C’est le moyen le plus simple de basculer ou de passer au compte administrateur.
Comment utiliser la commande su avec des exemples sur Linux
Syntaxe et options
su [options] [utilisateurs [arguments]]
Si un nom d’utilisateur est spécifié, SU est par défaut sur le superutilisateur (racine). Il suffit de trouver l’utilisateur dont vous avez besoin et de l’ajouter à la syntaxe de commande SU.
COMMANDES | DESCRIPTION |
Username | Remplacez le nom d’utilisateur avec le nom d’utilisateur réel que vous souhaitez vous connecter. Cela peut être n’importe quel utilisateur, pas seulement la racine. |
–c ou –command [command] | Exécute une commande spécifique comme utilisateur spécifié. |
– ou –l ou –login [username] | Exécute un script de connexion pour passer à un nom d’utilisateur spécifique. Vous devrez entrer un mot de passe pour cet utilisateur. |
–s ou –shell [shell] | Vous permet de spécifier un environnement de shell différent à exécuter. |
–h ou –help | Affiche le fichier d’aide pour la commande SU. |
–p ou ––preserve–environment | Préserver l’environnement Shell (maison, coquille, utilisateur, nom de connexion). |
Passer à un autre utilisateur
Pour basculer d’un autre utilisateur à l’autre, deux utilisations de la commande su est possible :
su –l [autre_utilisateur]
ou
su – [autre_utilisateur]
On vous demande le mot de passe de l’utilisateur cible pour s’identifier avec.
Ci-dessous on bascule de l’utilisateur debian à l’utilisateur malekalmorte :
Par exemple pour passer en root, on peut utiliser su de toutes ces manières
su -l
su -
su -l root
su - root
L’utilisateur doit être configuré avec un shell dans /etc/passwd (par exemple /bin/bash).
Les utilisateurs pour des raisons de sécurité n’ont pas de shell ainsi si vous tentez de vous connecter avec, vous recevez le message : This account is currently not available.
root@www:/data/www# whoami
root
root@www:/data/www# cat /etc/passwd|grep www-data
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
root@www:/data/www# su - www-data
This account is currently not available.
On peut utiliser l’option –shell pour faire un shell ce qui permet de s’identifier avec un utilisateur système :
root@www:/data/www# su - www-data --shell=/bin/bash
www-data@www:~$ whoami
www-data
Exécuter une commande spécifique comme un utilisateur différent
Pour exécuter une commande spécifique comme utilisateur différent, utilisez l’option -c :
su –c [commande] [autre_utilisateur]
Par exemple, ci-dessous, on exécute la commande whoami avec l’utilisateur malekalmorte qui retourne logiquement malekalmorte.
su -c whoami malekalmorte
Si vous administrez un serveur WEB, cela est très pratique pour exécuter des utilitaires en lignes de commandes (CLI) comme WP-CLI, PHP CLI, phpbb-cli, …
Par exemple, ci-dessous, on exécute la commande occ (cli d’owncloud) avec l’utilisateur www-data :
su -c '/usr/bin/php7.4 occ integrity:check-core' www-data --shell /bin/bash
Utilisez un shell différent
Pour utiliser une coque différente ou un environnement d’exploitation, entrez les éléments suivants :
su –s /usr/bin/zsh
Cette commande ouvre un compte utilisateur root dans Z Shell.
Utilisez un autre utilisateur dans le même environnement
Vous pouvez conserver l’environnement du compte d’utilisateur actuel avec l’option p :
su –p [other_user]
Le compte d’utilisateur commutera, mais vous garderez le même répertoire de la maison. Ceci est utile si vous devez exécuter une commande en tant qu’utilisateur différent, mais vous avez besoin d’accéder aux données actuelles de l’utilisateur.