Commande Linux su

Linux 命令大全Collection de commandes Linux

La commande Linux su (nom anglais complet : switch user) est utilisée pour changer d'identité utilisateur. Sauf pour root, vous devez saisir le mot de passe de cet utilisateur.

Autorisations : tous les utilisateurs.

Syntaxe

su [选项] [用户名]

Par exemple :

su              # 切换到root,保持当前环境
su -            # 切换到root,加载root的完整环境
su root         # 明确指定切换到root用户

Passer à un autre utilisateur :

su username
su - username
su -l username

Description des paramètres:

  • -ou-lou--login: Fournir un environnement similaire à une connexion directe
  • -c command: Exécuter la commande spécifiée puis quitter
  • -s shell: Spécifier le shell à utiliser
  • -pou--preserve-environment: Préserver les variables d'environnement actuelles

Exemples

Exécuter temporairement une commande en tant que root :

su -c "apt update && apt upgrade" root

Passer à un utilisateur de service pour le débogage :

su - www-data
su -s /bin/bash www-data  # 如果默认shell是/bin/false

Utilisation dans les scripts :

su - postgres -c "psql -c 'SELECT version();'"

Quitter la session su :

exit        # 退出当前su会话
Ctrl+D      # 同样可以退出

Différence entre su et su -

su(Option non-login) :

  • Conserve les variables d'environnement de l'utilisateur courant
  • Répertoire de travail inchangé
  • Les variables d'environnement telles que PATH restent inchangées

su -(Option login) :

  • Charge l'environnement complet de l'utilisateur cible
  • Bascule vers le répertoire personnel de l'utilisateur cible
  • Réinitialise les variables d'environnement telles que PATH et HOME
  • Exécute les scripts de connexion de l'utilisateur cible

Exemple de comparaison

# 当前用户:john,工作目录:/home/john
pwd                    # /home/john
echo $HOME            # /home/john

su root
pwd                   # /home/john (目录未变)
echo $HOME           # /home/john (环境未变)
exit

su - root
pwd                  # /root (切换到root家目录)
echo $HOME          # /root (完整环境)
exit

Différence entre su et sudo

Fonctionnalité su sudo
Mot de passe requis Mot de passe de l'utilisateur cible Mot de passe de l'utilisateur actuel
Durée de la session Jusqu'à la sortie manuelle Commande unique ou mise en cache à court terme
Complexité de configuration Simple Nécessite la configuration de sudoers
Sécurité Nécessite de connaître le mot de passe root Contrôle des permissions plus granulaire
Audit Limité Journaux plus détaillés

Bien que la commande su soit simple et directe, sudo est généralement le choix le plus recommandé dans l'administration système moderne, car il offre de meilleures capacités de sécurité et d'audit.


Considérations de sécurité

  • Éviter de partager le mot de passe root
  • Utilisersu -Assurer un basculement complet de l'environnement
  • Quitter rapidement les sessions su
  • Prioriser l'utilisation de sudo dans les environnements de production
  • Surveiller les journaux d'utilisation de su (généralement dans /var/log/auth.log)

Linux 命令大全Collection de commandes Linux

Autres extensions