RDP Monster

Comment changer d'utilisateur sous Ubuntu : su, sudo & élévation de privilèges

Comment changer d'utilisateur sous Ubuntu : su, sudo & élévation de privilèges

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 User
su 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 john

Commande 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 service
sudo 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 command

Exé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 timeout
sudo -v

 

-H (Home): Set HOME to target user’s home

sudo -H -u username command

su – 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 john
Password:
$ echo $HOME
/root # Still shows original home!
$ pwd
/path/to/original # Still in original directory
# Avec su - (GOOD)
$ su - john
Password:
$ echo $HOME
/home/john # Correct home directory
$ pwd
/home/john # Correct directory

Passer 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 restart
su - 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

passwd

Demande 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 info
sudo chage -M 90 john # Force password change every 90 days
sudo 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 to
groups # Show own groups
id john # Detailed UID, GID, groups

Ajouter 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 update
sudo 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/html

Exemple 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 users
for user in user1 user2 user3; do
sudo useradd -m -s /bin/bash "$user"
echo "Please set password for $user:"
sudo passwd "$user"
done
# Add all to sudo group
for user in user1 user2 user3; do
sudo usermod -aG sudo "$user"
done

Considé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 aging
sudo chage -M 90 -m 1 -W 7 username
# Forces change every 90 days, minimum 1 day between changes, 7-day warning

Audit et journalisation

All sudo commands are logged:

sudo grep COMMAND /var/log/auth.log

 

View detailed sudo history:

sudo journalctl _COMM=sudo

Restricting É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 nginx
john ALL=(ALL) /usr/bin/apt-get

Délai d'expiration de session

# Set sudo timeout
sudo -v # Extend timeout
sudo -k # Invalidate sudo credentials

Pourquoi 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

Déployez une infrastructure Ubuntu VPS avec des capacités de gestion sécurisée des utilisateurs via RDP.Monster

 

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.

Dedicated Servers

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 ?

sudo est préféré sur les systèmes modernes.

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 ?

Vous ne connaissez peut-être pas le mot de passe de l'utilisateur cible.

Try sudo -u username instead if you have sudo privileges.

Puis-je changer d'utilisateur sans mot de passe ?

Oui, avec sudo : configurez sudoers avec NOPASSWD.

Avec su, le mot de passe de l'utilisateur cible est toujours requis.

Quelle est la différence entre su - et su --login ?

Elles sont identiques : toutes deux créent un shell de login avec chargement complet de l'environnement.

Combien de temps dure le privilège sudo ?

Par défaut, 15 minutes. Personnalisable dans la configuration sudoers.

Puis-je exécuter plusieurs commandes en tant qu'un autre utilisateur ?

Oui : sudo bash -c "commande1 && commande2 && commande3"

Comment voir mes permissions sudo ?

Exécutez sudo -l pour afficher les commandes autorisées.

Pourquoi mon PATH change-t-il quand je change d'utilisateur ?

Utilisez su - pour charger l'environnement complet de l'utilisateur cible, y compris le bon PATH.

Register to our reseller program

Your informations

If you have any question, contact us by clicking here !
Name(Required)
Enter your email address, you must have an account on manager.rdp.monster !

Your company

Enter your website address if you have one
Quickly explain how you're going to sell services to your customers. For example, talk to people on forums.

On utilise des cookies !

Nous utilisons des cookies pour améliorer votre expérience de navigation, proposer des publicités ou contenus personnalisés et analyser notre trafic. En cliquant sur « Accepter », vous consentez à notre utilisation des cookies.