Créer un utilisateur sudo Linux pas à pas (Debian, Ubuntu, CentOS, RHEL)
Travailler en root permanent sur votre VPS Linux est dangereux : une faute de frappe peut tout casser, et tout malware lancé hérite des droits root. Ce guide montre comment créer un utilisateur dédié avec privilèges sudo sur les principales distributions, vérifié contre la documentation officielle Debian, Ubuntu, Red Hat et OpenBSD.
Pas encore de VPS ? Louez un VPS chez HebergTonServ — Debian/Ubuntu pré-installé, accès root immédiat par email.
⚠️ Règle d’or : créez l’utilisateur sudo avant de désactiver le login root SSH. Sinon vous resterez bloqué dehors.
Pourquoi un utilisateur sudo ?
| Problème root permanent | Solution sudo |
|---|---|
Une faute de frappe (rm -rf /) tout efface | sudo demande mot de passe → réflexion |
| Tout process root a accès total | Process user limité par défaut |
| Logs ne montrent pas qui a fait quoi | sudo logge l’utilisateur dans /var/log/auth.log |
Brute force SSH cible toujours root | User custom = nom non devinable |
Identifier votre distribution
Avant de commencer :
cat /etc/os-releaseSortie type :
ID=debianouID=ubuntu→ groupesudoID="rhel",ID="centos",ID="fedora",ID="almalinux",ID="rocky"→ groupewheel
Doute ? Testez :
getent group sudo getent group wheelLe groupe qui retourne une ligne est celui de votre système.
Méthode Debian / Ubuntu
Étape 1 — Créer l’utilisateur avec adduser
adduser est le wrapper Debian-friendly autour de useradd. Il crée le home, configure le shell et demande un mot de passe interactivement :
adduser jeanSortie typique :
Adding user `jean' ...
Adding new group `jean' (1001) ...
Adding new user `jean' (1001) with group `jean' ...
Creating home directory `/home/jean' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for jean
Full Name []: Jean Dupont
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] YChoisissez un mot de passe fort (16+ caractères, mélange majuscules/minuscules/chiffres/symboles). Ce mot de passe sera demandé pour
sudo.
Étape 2 — Ajouter au groupe sudo
usermod -aG sudo jean| Flag | Rôle |
|---|---|
-a | Append (ajoute, ne remplace pas les autres groupes) |
-G | Liste de groupes secondaires |
⚠️ Sans
-a, l’utilisateur perd ses autres groupes. Toujours utiliserusermod -aG.
Étape 3 — Vérifier
groups jeanSortie : jean : jean sudo
Étape 4 — Tester
Ouvrez une nouvelle session SSH (la session actuelle ne voit pas le changement de groupe) :
ssh jean@votre-ip-vpsUne fois connecté :
sudo whoamiMot de passe demandé. Si la sortie est root, vous êtes correctement sudo.
Méthode RHEL / CentOS / Fedora / AlmaLinux / Rocky
Étape 1 — Créer l’utilisateur
adduser n’existe pas (ou est un alias de useradd) sur RHEL. Utilisez :
useradd -m -s /bin/bash jean
passwd jean| Flag | Rôle |
|---|---|
-m | Crée le home /home/jean |
-s /bin/bash | Shell par défaut bash |
passwd demande le nouveau mot de passe.
Étape 2 — Ajouter au groupe wheel
usermod -aG wheel jeanÉtape 3 — Vérifier que wheel est bien autorisé sudo
Ouvrez /etc/sudoers avec visudo uniquement (jamais avec un éditeur direct) :
visudoCherchez la ligne :
%wheel ALL=(ALL) ALLSi elle est commentée (# %wheel), décommentez. Sauvegardez (Ctrl+X, Y, Entrée sous nano).
visudovalide la syntaxe avant de sauvegarder. Si vous éditez/etc/sudoersà la main et faites une erreur, plus aucun sudo ne fonctionne et seul un boot single-user vous récupère.
Méthode universelle — modifier /etc/sudoers via visudo
Approche multi-distrib si vous voulez accorder sudo à un user sans passer par un groupe :
visudoAjoutez en bas du fichier :
jean ALL=(ALL:ALL) ALL| Élément | Sens |
|---|---|
jean | Utilisateur cible |
ALL (1er) | Depuis n’importe quel hôte |
(ALL:ALL) | Peut devenir n’importe quel user/groupe |
ALL (final) | Peut exécuter n’importe quelle commande |
Sauvegardez. visudo valide la syntaxe — si erreur, ne quittez pas tant que ce n’est pas corrigé.
Variantes utiles
Sudo sans mot de passe (NOPASSWD)
Déconseillé sauf cas spécifique (script auto, CI/CD). Pour l’activer ponctuellement :
visudoAjoutez :
jean ALL=(ALL) NOPASSWD: ALLTout malware s’exécutant sous
jeanaura root sans demander. À éviter en production.
Limiter sudo à des commandes précises
jean ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx, /usr/bin/journalctlJean peut relancer Nginx et lire les logs sans mot de passe, mais rien d’autre.
Donner sudo via fichier dans /etc/sudoers.d/
Plus propre que d’éditer directement /etc/sudoers :
echo "jean ALL=(ALL:ALL) ALL" > /etc/sudoers.d/jean
chmod 440 /etc/sudoers.d/jeanToujours
chmod 440— sinon sudo ignore le fichier.
Configurer la clé SSH du nouvel utilisateur
L’utilisateur sudo n’a pas de clé SSH par défaut. Pour qu’il se connecte sans mot de passe :
mkdir -p /home/jean/.ssh
chmod 700 /home/jean/.ssh
# Coller la clé publique
nano /home/jean/.ssh/authorized_keys
chmod 600 /home/jean/.ssh/authorized_keys
chown -R jean:jean /home/jean/.sshPour générer/copier la clé depuis Windows, voir : Se connecter en SSH à un VPS depuis Windows.
Supprimer un utilisateur sudo
Retirer du groupe sudo
gpasswd -d jean sudo # Debian/Ubuntu
gpasswd -d jean wheel # RHEL/CentOSSupprimer complètement (avec home)
deluser --remove-home jean # Debian/Ubuntu
userdel -r jean # Multi-distrib⚠️ Ces commandes effacent les fichiers de l’user. Faites un backup avant.
FAQ
Quelle différence entre adduser et useradd ?
useradd est la commande bas-niveau standard POSIX — elle crée juste l’entrée /etc/passwd sans home, sans shell par défaut interactif. adduser (Debian/Ubuntu) est un script Perl qui appelle useradd avec des défauts saints + crée le home + demande le mot de passe interactivement. Sur RHEL, adduser est un alias minimal de useradd.
Sur Ubuntu, le groupe admin ou sudo ?
Le groupe historique admin a été remplacé par sudo depuis Ubuntu 12.04. Utilisez sudo.
Le user n’a pas de droits sudo après usermod -aG sudo ?
L’appartenance aux groupes ne s’applique qu’aux nouvelles sessions. Faites exit puis re-SSH, ou tapez su - jean pour ouvrir un shell frais.
sudo me demande le mot de passe root au lieu du mien ?
Sur certains systèmes, sudo est configuré pour demander le mot de passe root (ancien comportement). Dans visudo, vérifiez la ligne Defaults. La conf moderne demande le mot de passe de l’utilisateur courant.
Comment voir tous les users sudo de ma machine ?
getent group sudo # Debian/Ubuntu
getent group wheel # RHEL/CentOSEt examiner /etc/sudoers.d/ :
ls -la /etc/sudoers.d/Puis-je récupérer si j’ai cassé /etc/sudoers ?
Oui mais c’est galère. Méthode :
- Reboot en mode single-user (boot loader →
init=/bin/bash) - Remontez
/en r/w :mount -o remount,rw / - Corrigez
/etc/sudoers(idéalement avecvisudosi dispo) - Reboot normal
C’est précisément pour éviter ça qu’on utilise visudo au lieu de nano /etc/sudoers direct.
Conclusion
Créer un utilisateur sudo Linux est la première étape de toute install VPS sérieuse. Trois étapes : adduser → usermod -aG sudo/wheel → tester en nouvelle session. Une fois fait, vous pouvez désactiver le login root SSH sans risque de vous bloquer dehors.
Pour un VPS Linux avec Debian/Ubuntu installé, accès root par email et IP fixe, HebergTonServ propose des VPS premium dès quelques euros par mois.


