su (Français)

From ArchWiki

État de la traduction: Cet article est la version francophone de su. Date de la dernière traduction: 2022-04-23. Vous pouvez aider à synchroniser la traduction s'il y a eu des changements dans la version anglaise.

L'utilitaire de base su («substitute user») est utilisé pour prendre l'identité d'un autre utilisateur sur le système, root par défaut.

Consultez PAM pour savoir comment configurer le comportement de su.

Installation

su fait partie du paquet util-linux.

Utilisation

Pour prendre le login d'un autre utilisateur, passez le nom d'utilisateur que vous voulez devenir à su, comme dans :

$ su nom d'utilisateur

Par défaut, lorsque vous vous exécutez en tant qu'utilisateur normal, le système vous demande le mot de passe de l'utilisateur que vous essayez de devenir. Lorsque vous exécutez su en tant que root, aucun mot de passe n'est requis.

Si aucun nom d'utilisateur n'est fourni, su prend l'utilisateur root et le mot de passe qui vous sera demandé sera celui de root.

Pour plus d'informations, consultez su(1).

Trucs et astuces

Shell de connexion

Le comportement par défaut de su est de rester dans le répertoire actuel et de maintenir les variables environnementales de l'utilisateur original (plutôt que de passer à celles du nouvel utilisateur).

Notez les considérations contrastées importantes suivantes :

  • Il peut parfois être avantageux pour un administrateur système d'utiliser le compte shell d'un utilisateur ordinaire plutôt que le sien. En particulier, la manière la plus efficace de résoudre le problème d'un utilisateur est parfois de se connecter au compte de cet utilisateur afin de reproduire ou de déboguer le problème.
  • Cependant, dans de nombreuses situations, il n'est pas souhaitable, voire dangereux, que l'utilisateur root opère à partir du compte shell d'un utilisateur ordinaire et avec les variables environnementales de ce compte plutôt qu'à partir du sien. En utilisant par inadvertance le compte shell d'un utilisateur ordinaire, l'utilisateur root pourrait installer un programme ou apporter d'autres modifications au système qui n'auraient pas le même résultat que si elles avaient été effectuées en utilisant le compte root. Par exemple, un programme pourrait être installé et donner à l'utilisateur ordinaire le pouvoir d'endommager accidentellement le système ou d'obtenir un accès non autorisé à certaines données.

Il est donc conseillé aux utilisateurs administratifs, ainsi qu'à tout autre utilisateur autorisé à utiliser su (et il est suggéré qu'il y en ait très peu, voire aucun), de prendre l'habitude de toujours exécuter la commande su avec l'option -l/--login. Elle a deux effets :

  1. Passer du répertoire courant au répertoire personnel du nouvel utilisateur (par exemple, à /root dans le cas de l'utilisateur root) en se connectant en tant que cet utilisateur.
  2. Modifie les variables d'environnement pour qu'elles correspondent à celles du nouvel utilisateur, en fonction des paramètres préférés du shell. Comme leur ~/.bashrc, et éventuellement d'autres fichiers point, pour un shell bash. En d'autres termes, le répertoire et l'environnement actuels seront modifiés en fonction de ce qui serait attendu si le nouvel utilisateur s'était réellement connecté à une nouvelle session (plutôt que de simplement reprendre une session existante).

Ainsi, les administrateurs devraient généralement utiliser su comme suit :

$ su -l

Un résultat identique est produit en ajoutant le nom d'utilisateur root :

$ su -l root

De même, on peut faire la même chose pour tout autre utilisateur (par exemple, pour un utilisateur nommé archie) :

# su -l archie

Pour cela, vous pouvez ajouter un alias à ~/.bashrc :

alias su="su -l"

su et wheel

BSD su permet uniquement aux membres du groupe d'utilisateurs wheel d'assumer l'identité de root par défaut. Ce n'est pas le comportement par défaut de GNU su, mais ce comportement peut être imité en utilisant PAM. Décommentez la ligne appropriée dans /etc/pam.d/su et /etc/pam.d/su-l :

auth requis pam_wheel.so use_uid