su (substitute user ou switch user) est une commande Unix permettant d'exécuter un interpréteur de commandes en changeant d'identifiant de groupe et de User identifier.
Sans argument, la commande utilise les UID 0 et le GID 0, c'est-à-dire ceux du compte utilisateur root.
Cette commande est surtout utilisée pour obtenir les privilèges d'administration à partir d'une session d'utilisateur normal, c’est-à-dire, non privilégiée. Dans certaines versions, l'utilisateur doit toutefois faire partie du groupe spécial : wheel [1] (par défaut, ce n'est pas le cas de la version GNU)[2].
La commande su démarre un interpréteur de commandes à l'intérieur de la nouvelle session utilisateur. Une autre solution est la commande sudo qui permet d'attribuer des privilèges à des utilisateurs et pour des commandes spécifiques.
Une autre utilisation possible de cette commande est de prendre l'identité d'un utilisateur spécial qui n'est pas supposé ouvrir de session interactive, par exemple à des fins de débogage. Ces utilisateurs spéciaux sont utilisés par les démons du système. Pour éviter qu'une attaque réseau corrompant un démon ne se propage au reste du système, on le fait habituellement tourner sous le compte d'un utilisateur dont les seuls droits sont limités au rôle du démon. La commande su permettant d'exécuter un shell interactif avec l'identité de ces utilisateurs spéciaux, on peut s'assurer facilement qu'il n'y a pas de problème de droit d'accès sur les fichiers.
L'option « -c » de su permet de demander à celui-ci d'exécuter une commande précise au lieu du shell interactif prévu.
Un utilisateur normal doit fournir le mot de passe de l'identité qu'il souhaite prendre, tandis que l'utilisateur root peut prendre toutes les identités qu'il désire sans fournir le mot de passe.
Voir également
Notes et références