Aperçu
`su` est utilisé pour exécuter des commandes avec les privilèges d'un autre utilisateur dans la session actuelle ou pour passer à l'environnement shell de cet utilisateur. Par défaut, si aucun utilisateur cible n'est spécifié, il tente de passer à l'utilisateur root.
Caractéristiques principales
- Changement d'ID utilisateur : Modifie les privilèges de l'utilisateur actuel en ceux d'un autre utilisateur.
- Cible par défaut : Si aucun nom d'utilisateur n'est spécifié, il tente par défaut de passer à l'utilisateur root.
- Authentification par mot de passe : Le mot de passe de l'utilisateur cible doit être saisi correctement pour que le changement de privilèges soit possible.
- Changement d'environnement : L'option `-` ou `-l` peut être utilisée pour passer complètement à l'environnement shell de connexion de l'utilisateur cible.
Options principales
La commande `su` peut contrôler la manière dont l'utilisateur est changé et les commandes à exécuter grâce à diverses options.
Options de changement d'utilisateur
Options d'exécution de commande
Commande générée :
Essayez de combiner les commandes.
Description:
`su` Exécute la commande.
Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.
Exemples d'utilisation
Vous pouvez apprendre à changer d'utilisateur et à exécuter des commandes spécifiques grâce aux différentes utilisations de la commande `su`.
Passer à l'utilisateur root (sans shell de connexion)
su
Passe par défaut à l'utilisateur root, mais ne charge pas l'environnement shell de connexion de root. Les variables d'environnement de l'utilisateur actuel peuvent être partiellement conservées.
Passer à l'utilisateur root avec le shell de connexion
su -
Passe à l'utilisateur root et charge complètement l'environnement shell de connexion de root (PATH, répertoire personnel, etc.). C'est la méthode la plus courante et recommandée.
Passer à un utilisateur spécifique avec le shell de connexion
su -l nom_utilisateur
Passe à l'utilisateur 'nom_utilisateur' spécifié et charge l'environnement shell de connexion de cet utilisateur.
Exécuter une commande spécifique avec les privilèges root et revenir
su -c "ls -la /root"
Exécute la commande `ls -la /root` avec les privilèges root, puis revient automatiquement à l'utilisateur d'origine. L'environnement shell n'est pas modifié.
Exécuter une commande spécifique avec un autre utilisateur et revenir
su nom_utilisateur -c "whoami"
Exécute la commande `whoami` avec les privilèges de l'utilisateur 'nom_utilisateur', puis revient à l'utilisateur d'origine.
Conseils et précautions
La commande `su` a un impact direct sur la sécurité du système, il est donc important de prendre en compte certains points lors de son utilisation.
Recommandations de sécurité
- Risque d'exposition du mot de passe root : `su` demande directement le mot de passe root, donc si ce mot de passe est exposé, l'ensemble du système peut être mis en danger. `sudo` utilise le mot de passe de l'utilisateur lui-même et peut accorder des privilèges uniquement pour des commandes spécifiques, permettant un contrôle plus fin. En général, l'utilisation de `sudo` est plus recommandée.
- Recommandation d'utiliser le shell de connexion : Il est conseillé d'utiliser `su -` (avec le tiret) pour charger complètement l'environnement shell de connexion de l'utilisateur cible. Cela garantit que le PATH, les variables d'environnement, etc., sont correctement configurés, évitant ainsi des problèmes inattendus et produisant le même effet que le travail dans l'environnement de l'utilisateur cible.
- Éviter l'utilisation inutile de root : Il est plus sûr pour la sécurité de revenir immédiatement à l'utilisateur d'origine en utilisant la commande `exit` une fois le travail terminé. Travailler pendant une longue période avec les privilèges root peut entraîner des risques pour le système.
- Vérification des logs : Les enregistrements d'utilisation de `su` sont conservés dans les journaux système (par exemple, `/var/log/auth.log` ou `/var/log/secure`). Il est conseillé de vérifier ces journaux périodiquement pour des audits de sécurité.