15%

Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code :

Skills
Commencer
02.01.2026
3 +2

Comment changer d’utilisateur dans Linux : Le guide complet

Linux est un système d’exploitation multi-utilisateurs par conception, et la gestion des identités utilisateur est l’une des compétences les plus fondamentales que tout administrateur système doit maîtriser. Que vous gériez un environnement VPS Hosting, que vous configuriez un serveur web ou que vous dépanniez des problèmes de permissions de fichiers après un déploiement, comprendre comment changer d’utilisateur sous Linux est essentiel.

L’expression « changer d’utilisateur » sous Linux couvre en réalité plusieurs opérations distinctes, chacune avec ses propres outils, risques et bonnes pratiques :

  • Basculer vers un autre compte dans le shell (par exemple, de john à root) pour une session interactive
  • Exécuter une seule commande en tant qu’utilisateur différent sans basculer complètement de session
  • Changer l’utilisateur sous lequel s’exécute un service ou un processus — critique pour le renforcement de la sécurité
  • Changer la propriété des fichiers et répertoires — essentiel après les migrations, restaurations ou déploiements
  • Modifier les attributs du compte utilisateur — renommer les utilisateurs, changer les UID ou ajuster les appartenances aux groupes

Ce guide couvre tous ces scénarios en détail, expliquant quand utiliser chaque approche, comment le faire en toute sécurité et quelles erreurs éviter — afin que vous puissiez gérer les utilisateurs Linux en toute confiance sans casser les permissions, les services ou l’accès.

Table des matières

  1. Basculer vers un autre utilisateur (Shell interactif)
  2. Exécuter une seule commande en tant qu’autre utilisateur
  3. Changer l’utilisateur sous lequel s’exécute un service (systemd)
  4. Changer la propriété des fichiers avec chown
  5. Confirmer votre identité actuelle
  6. Modifier les attributs du compte utilisateur
  7. Feuille de triche de référence rapide

Basculer vers un autre utilisateur (Shell interactif)

Lorsque vous avez besoin d’une session de terminal interactive complète en tant qu’autre utilisateur — pour l’administration système, le test du comportement des applications sous un compte différent ou l’accès à un compte de service — Linux fournit deux outils principaux : su et sudo.

Utiliser su (Switch User)

La commande su remplace votre identité utilisateur actuelle par une autre :

su - username

Le drapeau - (également écrit -l ou --login) est important : il charge l’environnement de connexion complet de l’utilisateur cible, y compris son répertoire personnel, PATH, le profil du shell et les variables d’environnement. Sans le drapeau -, vous héritez d’une grande partie de votre environnement actuel, ce qui peut causer un comportement subtil et confus — en particulier lors de l’exécution de scripts ou de services.

Pour basculer directement vers root :

su -

> Note de sécurité : Sur de nombreuses distributions Linux modernes, le compte root est désactivé par défaut (en particulier sur les systèmes basés sur Ubuntu). Dans ces cas, su vers root échouera, et sudo est l’approche correcte.

Utiliser sudo -i (Préféré pour les shells Root/Admin)

sudo -i

Cela vous donne un shell de connexion root équivalent à su -, mais s’authentifie en utilisant vos propres privilèges sudo plutôt que de nécessiter le mot de passe root. C’est l’approche recommandée sur la plupart des distributions modernes car :

  • Elle évite le besoin de partager ou de connaître le mot de passe root
  • Toutes les actions sont enregistrées via la piste d’audit sudo
  • Elle respecte votre configuration sudoers et vos restrictions

Basculer vers un autre utilisateur avec un shell de connexion via sudo

sudo -iu username

Cela combine -i (shell de connexion) et -u (utilisateur cible), vous donnant un environnement de connexion propre en tant qu’utilisateur spécifié — sans avoir besoin du mot de passe de cet utilisateur.

Exécuter une seule commande en tant qu’autre utilisateur

Souvent, vous n’avez pas besoin d’une session interactive complète — vous avez juste besoin d’exécuter une commande avec une identité différente. C’est le modèle le plus courant et le plus sûr pour l’escalade de privilèges.

Utiliser sudo -u

sudo -u username whoami
sudo -u postgres psql

Le deuxième exemple est extrêmement courant dans l’administration de bases de données — basculer vers l’utilisateur système postgres pour accéder à PostgreSQL sans authentification par mot de passe.

Exécuter une commande avec un environnement de connexion propre

sudo -iu username command_here

Cela garantit que la commande s’exécute avec l’environnement complet de l’utilisateur cible, et non les variables de votre session actuelle.

Exécuter une commande en tant que root

sudo systemctl restart nginx

C’est le modèle standard pour les tâches administratives : exécuter une seule commande privilégiée sans ouvrir un shell root.

Changer l’utilisateur sous lequel s’exécute un service (systemd)

Sur pratiquement toutes les distributions Linux modernes, systemd gère les services. Pour la sécurité, chaque service doit s’exécuter sous un compte utilisateur dédié et non privilégié plutôt que root. L’exécution de services en tant que root est un risque de sécurité important — si le service est compromis, l’attaquant obtient un accès root à l’ensemble du système.

C’est particulièrement important sur les Serveurs dédiés et les environnements VPS de production où plusieurs services peuvent s’exécuter simultanément.

Vérifier la configuration actuelle du service

systemctl cat myservice.service

Recherchez les directives User= et Group= dans la section [Service] :

[Service]
User=www-data
Group=www-data

Remplacer l’utilisateur du service (Méthode sûre)

Plutôt que de modifier le fichier d’unité d’origine (qui peut être écrasé lors des mises à jour de paquets), utilisez systemctl edit pour créer un remplacement drop-in :

sudo systemctl edit myservice.service

Cela ouvre un éditeur où vous ajoutez :

[Service]
User=myuser
Group=mygroup

Enregistrez le fichier, puis appliquez les modifications :

sudo systemctl daemon-reload
sudo systemctl restart myservice.service

Vérifier que le service s’exécute en tant que l’utilisateur correct

systemctl status myservice.service
ps -eo user,pid,cmd | grep myservice

Inspecter l’utilisateur de tout processus en cours d’exécution

ps -eo user,pid,cmd | grep nginx
ps -p <PID> -o user,group,cmd

> Important : Linux ne vous permet pas de changer l’utilisateur d’un processus déjà en cours d’exécution sur place. Vous devez redémarrer le processus (ou configurer le gestionnaire de services pour le lancer sous l’utilisateur correct) pour que la modification prenne effet.

Changer la propriété des fichiers avec chown

La propriété des fichiers est une partie essentielle du modèle de permissions de Linux. Après les migrations, déploiements, sauvegardes ou restaurations, la propriété peut finir par être assignée au mauvais utilisateur — causant des erreurs de permission refusée, des applications web cassées ou des données inaccessibles. La commande chown est votre outil principal pour corriger cela.

C’est une tâche courante lors de la configuration d’environnements Hébergement web partagé ou du déploiement d’applications web sur un VPS.

Changer le propriétaire d’un fichier

sudo chown username file.txt

Changer à la fois le propriétaire et le groupe

sudo chown username:groupname file.txt

Changement de propriété récursif (À utiliser avec prudence)

sudo chown -R username:groupname /var/www/site

Le drapeau -R applique la modification de manière récursive à tous les fichiers et sous-répertoires. Utilisez ceci avec prudence — l’appliquer au mauvais chemin (par exemple, / ou /etc) peut casser votre système entier.

Préserver les liens symboliques

sudo chown -h username:groupname symlink

Sans -h, chown suit les liens symboliques et change la propriété du fichier cible, pas du lien symbolique lui-même. Utilisez -h lorsque vous voulez spécifiquement changer la propriété du lien symbolique.

Aperçu de la propriété avant de faire des modifications

Pour les grands arbres de répertoires, prévisualisez toujours avant d’appliquer un chown récursif :

find /path -maxdepth 2 -printf '%u:%g %pn' | head

Cela affiche le propriétaire et le groupe actuels pour les deux premiers niveaux de l’arborescence des répertoires, vous permettant de confirmer l’étendue de la modification avant de vous engager.

Confirmer votre identité actuelle

Avant de faire des modifications, vérifiez toujours qui vous êtes et dans quel contexte vous opérez. Cela évite les modifications accidentelles effectuées sous le mauvais compte.

Vérifier votre utilisateur actuel

whoami

Obtenir les informations d’identité complètes (Utilisateur, Groupes, UID)

id

Exemple de sortie :

uid=1000(alice) gid=1000(alice) groups=1000(alice),27(sudo),1001(docker)

Voir qui est connecté au système

who
w

Vérifier l’utilisateur d’origine lors de l’utilisation de sudo

Lorsque vous escaladez avec sudo, deux variables d’environnement sont pertinentes :

echo $USER        # The current effective user (root)
echo $SUDO_USER   # The original user who invoked sudo (e.g., alice)

Cette distinction est importante dans les scripts — $SUDO_USER vous indique qui a réellement exécuté la commande.

Modifier les attributs du compte utilisateur

Parfois, « changer d’utilisateur » signifie modifier le compte lui-même : le renommer, changer son UID ou ajuster les appartenances aux groupes. Ce sont des modifications permanentes à l’échelle du système qui peuvent affecter les connexions, les permissions de fichiers et l’accès aux services.

> Bonne pratique : Avant de faire des modifications de compte, assurez-vous que l’utilisateur est déconnecté et qu’aucun processus ne s’exécute sous ce compte.

Renommer un utilisateur (Changer le nom d’utilisateur)

sudo usermod -l newname oldname

Cela change le nom de connexion mais ne renomme pas automatiquement le répertoire personnel. Pour également déplacer et renommer le répertoire personnel :

sudo usermod -d /home/newname -m newname

Si l’utilisateur a un groupe principal portant le même nom que son ancien nom d’utilisateur (ce qui est la valeur par défaut sur la plupart des distributions), mettez à jour le nom du groupe également :

sudo groupmod -n newname oldname

Changer l’UID d’un utilisateur

sudo usermod -u 2001 username

> Critique : Après avoir changé un UID, tous les fichiers précédemment possédés par l’ancien UID apparaîtront comme possédés par un ID numérique inconnu. Vous devez corriger cela immédiatement :

sudo find / -user oldUID -exec chown -h username {} ;

Remplacez oldUID par l’UID numérique précédent. Cette commande recherche dans l’ensemble du système de fichiers les fichiers avec l’ancien UID et les réassigne au nouveau nom d’utilisateur.

Ajouter un utilisateur à un groupe

Le cas d’usage le plus courant est d’accorder l’accès sudo à un utilisateur :

Debian/Ubuntu :

sudo usermod -aG sudo username

RHEL / AlmaLinux / Rocky Linux :

sudo usermod -aG wheel username

Le drapeau -a est critique — il ajoute l’utilisateur au groupe sans le supprimer des groupes existants. Omettre -a remplacera toutes les appartenances aux groupes par seulement le groupe spécifié.

Vérifier l’appartenance au groupe

id username

Feuille de triche de référence rapide

Voici une référence consolidée pour toutes les opérations de changement d’utilisateur et de gestion couverte dans ce guide :

TâcheCommande
Basculer vers un autre utilisateur (shell de connexion)su - username
Basculer vers un autre utilisateur via sudosudo -iu username
Ouvrir un shell rootsudo -i
Exécuter une commande en tant qu’autre utilisateursudo -u username command
Exécuter une commande en tant que postgressudo -u postgres psql
Vérifier l’utilisateur actuelwhoami
Vérifier l’identité complète et les groupesid
Vérifier l’invocateur sudo d’origineecho $SUDO_USER
Changer le propriétaire du fichiersudo chown username file
Changer le propriétaire et le groupe du fichiersudo chown username:group file
Changement de propriété récursif###PPT_NOTR_
15%

Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code :

Skills
Commencer