Comment changer d'utilisateur sous Ubuntu : su, sudo & élévation de privilèges
- 9 novembre 2025
- 22:15
- Tutoriels

Présentation
Gérer plusieurs comptes utilisateurs et passer de l'un à l'autre est un aspect fondamental de l'administration Linux. Ubuntu, la distribution Linux la plus populaire au monde, propose plusieurs méthodes pour changer d'utilisateur actif, chacune avec ses cas d'usage et implications de sécurité. Maîtriser ces mécanismes permet des workflows multi-utilisateurs efficaces, des opérations d'administration sécurisées et une bonne gestion des privilèges.
Ce guide complet passe en revue toutes les méthodes pour changer d'utilisateur sur Ubuntu, des approches ligne de commande de base aux techniques avancées d'élévation de privilèges. Que vous gériez des systèmes partagés, des tâches d'administration ou des environnements multi-tenant, maîtriser le changement d'utilisateur est essentiel pour bien utiliser Ubuntu.
Comprendre la gestion des utilisateurs Ubuntu
Types de comptes utilisateur
Utilisateurs réguliers : Comptes standards avec des privilèges limités, un accès aux fichiers restreint, et l'incapacité de modifier la configuration système.
Utilisateur root : Superutilisateur avec un accès sans restriction à toutes les ressources système, capable de toute opération y compris les dangereuses.
Utilisateurs système : Comptes spéciaux pour les services système (www-data pour les serveurs web, mysql pour les bases de données).
Utilisateurs sudo : Comptes réguliers avec des privilèges de superutilisateur délégués via la configuration sudo.
Élévation de privilèges
Why Escalate?: Most administrative tasks require elevated privileges. Rather than logging in as root (dangerous), Ubuntu uses privilege escalation to grant specific elevated permissions temporarily.
Principes : Exécuter les opérations avec le minimum de privilèges nécessaires ; minimiser le temps passé en accès élevé ; auditer toutes les opérations privilégiées.
Commande su (Switch User)
Syntaxe de base
su [OPTIONS] [USERNAME]
Switching to Another Usersu john
Prompts for the target user’s password, then switches to that account. The environment remains the user’s original environment (not recommended).Changer d'utilisateur avec un nouvel environnement
su - john
The hyphen (-) loads the complete environment of the target user, including:
-
Variable HOME pointant vers le répertoire home de l'utilisateur
-
Variable PATH avec les chemins de commande de l'utilisateur
-
Fichiers de configuration du shell (.bashrc, .profile)
-
Répertoire de travail changé pour le home de l'utilisateur
Best Practice: Always use su - to ensure proper environment configuration.
Passer en root
su -
Passe en utilisateur root avec l'environnement complet de root. Demande le mot de passe root.
Options de la commande su
-c (Command): Execute single command as another user without full session
su - john -c "ls -la /home/john"-l (Login): Identical to using hyphen; creates login shell
su --login john
-s (Shell): Spécifier le shell pour la session
su - john -s /bin/zsh
-m (Preserve environment): Keep current environment while switching
su -m johnCommande sudo (Superuser Do)
Syntaxe de base
sudo [OPTIONS] COMMAND
Exécuter une commande avec privilèges élevés
sudo apt-get update # Update package lists (requires root)sudo systemctl restart ssh # Restart SSH servicesudo reboot # Reboot system
Lancer un shell root interactif
sudo -i
Lance un shell root interactif sans connexion en tant que root.
Lancer une commande en tant qu'autre utilisateur
sudo -u username commandExécute la commande avec les privilèges de l'utilisateur spécifié (pas seulement root).
Options de la commande sudo
-l (List): Display allowed commands
sudo -l
-k (Invalidate): Clear sudo credentials (requires password on next use)
sudo -k
-p (Prompt): Custom password prompt
sudo -p "Enter admin password: " apt-get update-v (Validate): Extend sudo timeoutsudo -v
-H (Home): Set HOME to target user’s home
sudo -H -u username commandsu – vs su : différences clés
| Fonctionnalité | su | su – |
|---|---|---|
| Environnement | Conserve l'environnement du shell parent | Charge l'environnement de l'utilisateur cible |
| Variable HOME | Reste sur le home de l'utilisateur original | Passe au home de l'utilisateur cible |
| Variable PATH | Peut inclure les chemins de l'utilisateur original | Contient les chemins standards de l'utilisateur cible |
| Config Shell | Ne charge pas .bashrc ni .profile | Charge ~/.bashrc et ~/.profile |
| Répertoire de travail | Reste dans le répertoire courant | Passe au home de l'utilisateur |
| Recommandé | Rarement ; risque de confusion | Toujours pour changer d'utilisateur |
| Niveau de risque | Plus élevé (environnements mixtes) | Plus faible (environnement propre) |
Différence d'exemple
# Avec su (BAD)
$ su johnPassword:
$ echo $HOME
/root # Still shows original home!
$ pwd
/path/to/original # Still in original directory# Avec su - (GOOD)
$ su - johnPassword:
$ echo $HOME
/home/john # Correct home directory$ pwd
/home/john # Correct directoryPasser en root
Avec su
su -
Password: (enter root password)
root@hostname:~#Avec sudo
sudo -i[sudo] password for john: (enter john's password)
root@hostname:~#Différences entre su – et sudo -i
| Critère | su – | sudo -i |
|---|---|---|
| Mot de passe requis | Mot de passe root | Mot de passe de l'utilisateur courant |
| Journalisation | Non journalisé | Enregistré par sudo |
| Piste d'audit | Réduite | Piste d'audit complète |
| Sécurité | Plus faible (nécessite le partage du mot de passe root) | Plus élevée (responsabilité individuelle) |
| Configuration d'entreprise typique | Déconseillé | Recommended |
Security Note: Modern Ubuntu systems typically don’t require root password; instead, sudoers are granted authority through sudo configuration.
Exécuter des commandes en tant qu'un autre utilisateur
Exécuter une commande unique
sudo -u apache /usr/bin/apache2ctl restartsu - testuser -c "python /home/testuser/script.py"
Exécuter plusieurs commandes
sudo bash -c "echo 'Line 1' > /tmp/file; cat /tmp/file"
Exécuter des commandes en préservant le répertoire courant
sudo -u john pwd # Prints john's home (working directory changed)sudo -u john -C pwd # Prints current directory (with -C flag)Changer le mot de passe utilisateur
Changer son propre mot de passe
passwdDemande le mot de passe actuel, puis le nouveau mot de passe (deux fois pour confirmation).
Changer le mot de passe d'un autre utilisateur (root requis)
sudo passwd john
Aucun mot de passe actuel requis ; demande le nouveau mot de passe (autorité root).
Définir la politique d'expiration
sudo chage -l john # View password aging infosudo chage -M 90 john # Force password change every 90 dayssudo chage -d 0 john # Force password change on next login
Permissions et groupes utilisateur
Voir les groupes d'utilisateurs
groups john # Show groups current user belongs togroups # Show own groupsid john # Detailed UID, GID, groupsAjouter un utilisateur à un groupe
sudo usermod -aG groupname username
Example: Add user to sudo group
sudo usermod -aG sudo john
Retirer un utilisateur d'un groupe
sudo deluser username groupname
Créer un nouvel utilisateur
sudo useradd -m -s /bin/bash newuser
sudo passwd newuser
Options:
-
-m: Create home directory -
-s: Specify shell -
-G: Affecter à des groupes
Exemples pratiques
Example 1: Administrative Task with Élévation de privilèges
#!/bin/bash
# Install software update as regular user with privilege escalation
sudo apt-get updatesudo apt-get upgrade -y
echo "System update complete"
Exemple 2 : Exécuter des tâches de serveur web
# Stop web server as specific service user
sudo -u www-data /opt/webapp/stop.sh# Check web server permissions as www-data
sudo -u www-data ls -la /var/www/htmlExemple 3 : Effectuer la maintenance de base de données
# Backup database as specific user
sudo -u mysql mysqldump -u root -p database_name > backup.sql
# Run database optimization
sudo -u mysql mysql -u root -p -e "OPTIMIZE TABLE table_name;"
Exemple 4 : Gestion d'utilisateurs en lot
#!/bin/bash# Create multiple usersfor user in user1 user2 user3; dosudo useradd -m -s /bin/bash "$user"echo "Please set password for $user:"sudo passwd "$user"done# Add all to sudo groupfor user in user1 user2 user3; dosudo usermod -aG sudo "$user"doneConsidérations de sécurité
Sécurité des mots de passe
Mot de passe root : Gardez-le sécurisé ; ne le partagez jamais avec des personnes non fiables
Configuration sudo : Déléguez des privilèges spécifiques plutôt qu'un accès root complet
Vieillissement des mots de passe : Imposez des changements périodiques de mot de passe
# Configure password agingsudo chage -M 90 -m 1 -W 7 username
# Forces change every 90 days, minimum 1 day between changes, 7-day warningAudit et journalisation
All sudo commands are logged:
sudo grep COMMAND /var/log/auth.log
View detailed sudo history:
sudo journalctl _COMM=sudoRestricting Élévation de privilèges
Configure sudoers file safely:
sudo visudo # Always use visudo for editing sudoers
Exemple de configuration sudoers (limiting what john can run):
john ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginxjohn ALL=(ALL) /usr/bin/apt-getDélai d'expiration de session
# Set sudo timeoutsudo -v # Extend timeoutsudo -k # Invalidate sudo credentialsPourquoi l'infrastructure distante utilise le changement d'utilisateur
L'infrastructure RDP et SSH nécessite fréquemment :
-
Plusieurs utilisateurs administratifs avec différents niveaux de privilèges
-
Comptes de service pour les processus automatisés
-
Pistes d'audit pour la conformité (journalisation sudo)
-
Élévation de privilèges pour les tâches administratives
Gestion d'infrastructure via RDP.Monster
Managing Ubuntu systems remotely requires robust, secure access:
Accès SSH pour l'exécution de commandes
-
Exécuter à distance les commandes de changement d'utilisateur
-
Administration automatisée via des scripts
-
Contrôle total sur la gestion des utilisateurs
Prise en charge de plusieurs comptes utilisateurs
-
Créer des utilisateurs administratifs
-
Déléguer les privilèges de manière appropriée
-
Maintenir les pistes d'audit
Administration distante sécurisée
-
Chiffrement SSH pour toutes les opérations de changement d'utilisateur
-
Authentification par clé pour l'accès programmatique
-
Journalisation et surveillance complètes
Pour conclure
Le changement d'utilisateur et l'élévation de privilèges sont des compétences fondamentales d'administration Ubuntu. Comprendre les différences entre su, sudo et la gestion des mots de passe permet une administration efficace de systèmes multi-utilisateurs tout en maintenant la sécurité grâce à une délégation appropriée des privilèges et à des pistes d'audit.
Les meilleures pratiques modernes d'Ubuntu privilégient fortement sudo plutôt que su pour l'élévation de privilèges, permettant la responsabilisation et la journalisation complète tout en minimisant le partage du mot de passe root. Une configuration appropriée du fichier sudoers déléguant des privilèges spécifiques offre un excellent équilibre de sécurité entre utilisabilité et accès control.
Managing complex Ubuntu infrastructure requiring sophisticated user management and secure administrative access? RDP.Monster provides SSH-based Ubuntu VPS solutions enabling seamless user management and privilege escalation across your infrastructure. Deploy professionally-managed Ubuntu systems today.
Hébergement VPS Ubuntu performant
Bénéficiez d'un contrôle total et de performances fulgurantes avec nos VPS Linux. Parfait pour héberger des applications, gérer des serveurs et optimiser votre workflow.
Serveurs dédiés haute performance
Besoin d'un contrôle et d'une puissance maximum ? Nos serveurs dédiés offrent des performances inégalées pour les tâches exigeantes.
Foire aux questions
Faut-il utiliser su ou sudo ?
Il garantit la traçabilité, exige des mots de passe individuels et fournit des pistes d'audit complètes.
Pourquoi ma commande su ne fonctionne-t-elle pas ?
Try sudo -u username instead if you have sudo privileges.
Puis-je changer d'utilisateur sans mot de passe ?
Avec su, le mot de passe de l'utilisateur cible est toujours requis.
Quelle est la différence entre su - et su --login ?
Combien de temps dure le privilège sudo ?
Puis-je exécuter plusieurs commandes en tant qu'un autre utilisateur ?
Comment voir mes permissions sudo ?
Pourquoi mon PATH change-t-il quand je change d'utilisateur ?
Articles connexes




