La commande su
sert à indiquer la nouvelle identité
à utiliser (sous réserve de connaître le mot de passe),
root étant la valeur par défaut.
Normalement, su
lance un sous-shell avec la nouvelle
identité. Avec l'argument '-' (plus récemment -l
ou
--login
), su
lance le shell comme un login shell. Cependant,
il n'utilise pas le programme login
pour cela mais encore un
autre PATH intégré au programme pour simuler le login
(termes employés dans le code source). Il s'agit de :
pour les utilisateurs normaux :
/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:.pour l'utilisateur root :
/sbin:/bin:/usr/sbin:/usr/bin:/usr/bin/X11:/usr/local/sbin:/usr/local/bin
su
réalise également quelques changements mineurs
dans l'environnement.
Il y a un groupe de commandes qui permettent une utilisation plus sûr
des commandes du super utilisateur. Elles permettent un meilleur suivi (au
sens où l'on garde une trace de chaque exécution - NdT), des
restrictions sur les utilisateurs et utilisent des mots de passe individuels.
La plus utilisée est sûrement sudo
.
$ sudo envCette commande exécute
env
en tant que super utilisateur
(si sudo
est configuré pour le permettre).
La commande sudo
a encore une autre approche en ce qui concerne
la gestion du PATH. Elle modifie les répertoires où chercher
la commande à exécuter pour que le répertoire courant
soit toujours le dernier. Cependant, elle ne modifie
pas la variable PATH, seulement quelques variables comme SUDO_USER.