Créer un utilisateur non-root et lui donner les accès sudo
Travailler en root en permanence est un réflexe courant à la réception d'un VPS, mais c'est aussi l'une des premières choses à corriger. Une erreur de commande, un script malveillant ou une faille dans un logiciel installé aurait alors un accès total et immédiat au système, sans aucune barrière.
C'est le principe du moindre privilège : donner à chaque utilisateur seulement les droits dont il a besoin, pas plus.
1. Créer le nouvel utilisateur
sudo adduser john
adduser guide la création pas à pas (mot de passe, informations optionnelles) et configure automatiquement plusieurs
éléments. C'est une commande plus confortable que useradd, plus basique et qui demande davantage d'étapes manuelles.
Choisissez un mot de passe fort pour ce nouvel utilisateur. Ce compte aura accès à sudo, il mérite une protection sérieuse.
2. Ajouter l'utilisateur au groupe sudo
sudo usermod -aG sudo john
Sur Debian/Ubuntu, le groupe concerné est sudo. D'autres distributions comme CentOS/RHEL utilisent plutôt wheel,
mais pour un VPS Debian/Ubuntu classique, c'est bien sudo qu'il faut viser.
Ne désactivez jamais l'accès root tant que vous n'avez pas confirmé que le nouvel utilisateur dispose bien des droits sudo. Le même risque qu'avec un firewall mal configuré s'applique ici : vous retrouver bloqué en dehors du serveur.
3. Tester avant de fermer quoi que ce soit
Ouvrez une nouvelle session SSH (en conservant votre session root actuelle ouverte, par précaution) et connectez-vous avec le nouvel utilisateur :
ssh john@votre-ip
Puis testez une commande avec sudo :
sudo apt update
Si le mot de passe est demandé et que la commande s'exécute, les droits sont correctement configurés.
Si vous obtenez un message du type john is not in the sudoers file. This incident will be reported., c'est que l'étape
2 a été oubliée, ou que vous n'avez pas encore ouvert une nouvelle session SSH depuis l'ajout au groupe sudo.
Reconnectez-vous et réessayez.
Sudo ponctuel vs session root
Deux usages de sudo à connaître :
# Ponctuel, pour une seule commande
sudo apt install nginx
# Passer en session root temporaire
sudo -i
# ou
sudo su
Au quotidien, privilégiez l'usage ponctuel de sudo plutôt qu'une session root prolongée. Cela limite le risque d'erreur et conserve une trace de chaque commande exécutée avec élévation de droits.
Aller plus loin : droits sudo restreints
Il est possible de limiter les droits sudo d'un utilisateur à certaines commandes seulement, via le fichier sudoers (
sudo visudo). Utile par exemple pour déléguer un accès limité, comme le redémarrage d'un service précis, sans donner
un accès complet. C'est un sujet plus avancé, qui pourrait faire l'objet d'un article dédié.
Créer l'utilisateur sans l'ajouter au groupe sudo, puis se retrouver bloqué au moment d'en avoir besoin. En cas de
doute, groups john permet de vérifier que sudo apparaît bien dans la liste.
Étape suivante recommandée
Une fois le nouvel utilisateur opérationnel, il est recommandé de désactiver la connexion SSH directe en root (
PermitRootLogin dans la configuration SSH). Le détail de cette manipulation est couvert dans notre article dédié à
la configuration SSH.
En résumé
Créer un utilisateur non-root avec sudo fait partie des toutes premières actions à réaliser à la réception d'un VPS. Pour poursuivre, consultez Sécuriser un VPS.
Notre équipe est disponible sur Discord pour vous accompagner.