É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
Sections
Linux Systèmes d'exploitation

Comment changer d’utilisateur sous 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 des utilisateurs, modifier 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.

Basculer vers un autre utilisateur (Shell interactif)

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

Utiliser su (Basculer d’utilisateur)

La commande su remplace votre identité d’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 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 mot de passe du compte root est désactivé par défaut (particulièrement 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 :

  • Cela é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
  • Cela 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’un 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.

Utilisation de sudo -u

sudo -u username whoami
sudo -u postgres psql

Le deuxième exemple est extrêmement courant en 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 avec 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.

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

Sur pratiquement toutes les distributions Linux modernes, systemd gère les services. Pour des raisons de sécurité, chaque service doit s’exécuter sous un compte utilisateur dédié et sans privilèges plutôt que root. Exécuter les 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é original (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 sous le bon utilisateur

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 modifier 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 le bon utilisateur) pour que la modification prenne effet.

Modifier 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 des migrations, des déploiements, des sauvegardes ou des restaurations, la propriété peut ê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 d’hébergement web partagé ou du déploiement d’applications web sur un VPS.

Modifier le propriétaire d’un fichier

sudo chown username file.txt

Modifier le propriétaire et le groupe

sudo chown username:groupname file.txt

Modification récursive de la propriété (À 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 modifie la propriété du fichier cible, pas du lien symbolique lui-même. Utilisez -h quand vous voulez spécifiquement modifier la propriété du lien symbolique.

Prévisualiser la propriété avant d’apporter des modifications

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

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 du répertoire, vous permettant de confirmer l’étendue de la modification avant de la valider.

Confirmez votre identité actuelle

Avant d’apporter des modifications, vérifiez toujours qui vous êtes et quel contexte vous utilisez. Cela prévient les modifications accidentelles effectuées sous le mauvais compte.

Vérifiez votre utilisateur actuel

whoami

Obtenez les informations d’identité complètes (utilisateur, groupes, UIDs)

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érifiez 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, modifier 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 modifier un compte, assurez-vous que l’utilisateur est déconnecté et qu’aucun processus n’est en cours d’exécution 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

Modifier l’UID d’un utilisateur

sudo usermod -u 2001 username

> Critique : Après avoir modifié 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 sur l’ensemble du système de fichiers les fichiers avec l’ancien UID et les réaffecte au nouveau nom d’utilisateur.

Ajouter un utilisateur à un groupe

Le cas d’utilisation 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

Fiche de référence rapide

Voici une référence consolidée pour toutes les opérations de commutation et de gestion des utilisateurs couvertes 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’un 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’appelant sudo originalecho $SUDO_USER
Modifier le propriétaire du fichiersudo chown username file
Modifier le propriétaire et le groupe du fichiersudo chown username:group file
Modification récursive de la propriétésudo chown -R username:group /path
Aperçu de la propriété du répertoirefind /path -maxdepth 2 -printf '%u:%g %pn'
Modifier l’utilisateur du service (systemd)sudo systemctl edit myservice.service
Recharger systemd après les modificationssudo systemctl daemon-reload
Vérifier l’utilisateur du processus`ps -eo user,pid,cmdgrep service`
Renommer un utilisateursudo usermod -l newname oldname
Déplacer le répertoire personnelsudo usermod -d /home/newname -m newname
Modifier l’UIDsudo usermod -u 2001 username
Corriger la propriété après modification de l’UIDsudo find / -user oldUID -exec chown -h username {} ;
Ajouter un utilisateur au groupe sudosudo usermod -aG sudo username
Vérifier l’appartenance au groupeid username

Résumé

La gestion des utilisateurs dans Linux n’est pas une seule opération — c’est une famille de tâches connexes, chacune avec ses propres outils et implications :

  • Utilisez sudo -iu username pour les sessions interactives en tant qu’un autre utilisateur (préféré à su sur les systèmes modernes)
  • Utilisez sudo -u username command pour exécuter des commandes individuelles avec une identité différente
  • Utilisez systemctl edit pour modifier en toute sécurité l’utilisateur sous lequel un service systemd s’exécute
  • Utilisez chown pour corriger la propriété des fichiers après les déploiements, les migrations ou les problèmes de permissions
  • Utilisez usermod pour les modifications permanentes de compte — renommage, modifications d’UID et gestion des groupes

Comprendre ces distinctions vous aide à éviter les erreurs courantes comme casser les permissions des services, vous verrouiller hors des fichiers ou accorder accidentellement des privilèges excessifs.

Si vous exécutez une infrastructure basée sur Linux — qu’il s’agisse d’un serveur web, d’une base de données ou d’une pile d’applications personnalisée — disposer d’un environnement d’hébergement correctement configuré rend la gestion des utilisateurs considérablement plus facile. AlexHost propose des Panneaux de Contrôle VPS flexibles et des options VPS avec cPanel qui vous donnent un accès root complet aux côtés d’interfaces de gestion intuitives, afin que vous puissiez appliquer tout ce guide en toute confiance.