Commande Linux su
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
- Utiliser
su -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)
Collection de commandes Linux