Sur les serveurs Linux, vous travaillez avec des droits d'utilisateur qui déterminent ce que vous pouvez ou ne pouvez pas faire. Root est l'utilisateur super puissant, tandis que sudo vous donne temporairement des droits élevés. Chez Theory7, nous conseillons toujours de manipuler ces droits avec précaution. Dans ce guide, nous expliquons tout sur root, sudo et les meilleures pratiques.

Qu'est-ce que root ?

Root est le compte super utilisateur sur Linux avec des droits illimités. Root peut :

  • Lire et modifier tous les fichiers
  • Installer ou supprimer n'importe quel logiciel
  • Ajuster la configuration du système
  • Démarrer et arrêter tous les services
  • Gérer d'autres utilisateurs

Cela rend root dangereux. Une erreur en tant que root peut détruire tout votre système. C'est pourquoi nous conseillons de ne jamais travailler en permanence en tant que root.

Se connecter en tant que root

Connexion directe root via SSH

ssh root@server-ip

Cela ne fonctionne que si la connexion root est autorisée dans sshd_config.

Passer à root depuis un utilisateur normal

su -

Entrez le mot de passe root. Le - permet d'obtenir un shell de connexion complet avec l'environnement approprié.

Shell root via sudo

sudo -i

Cela ouvre un shell root si vous avez des droits sudo.

Qu'est-ce que sudo ?

Sudo (superuser do) permet aux utilisateurs autorisés d'exécuter des commandes en tant que root ou un autre utilisateur. Avantages par rapport au travail direct en tant que root :

  • Journalisation - Toutes les commandes sudo sont enregistrées
  • Temporaire - Les droits expirent après un court laps de temps
  • Contrôle granulaire - Autoriser des commandes spécifiques
  • Pas de mot de passe root - Les utilisateurs n'ont pas besoin de connaître le mot de passe root

Utiliser sudo

Syntaxe de base

sudo commande

Exemple :

sudo apt update

Vous serez invité à entrer votre propre mot de passe (pas celui de root).

Commande en tant qu'autre utilisateur

sudo -u www-data commande

Pratique pour tester les permissions du serveur web.

Ouvrir un shell root

sudo -i

Ou shell root temporaire :

sudo -s

Différence : -i donne un shell de connexion complet avec l'environnement root.

Créer un utilisateur sudo

Étape 1 : Créer un utilisateur

sudo adduser nouvelleutilisateur

Suivez les invites pour le mot de passe et les informations.

Étape 2 : Ajouter au groupe sudo

Sur Ubuntu/Debian :

sudo usermod -aG sudo nouvelleutilisateur

Sur CentOS/RHEL :

sudo usermod -aG wheel nouvelleutilisateur

Étape 3 : Tester

Connectez-vous en tant que nouvel utilisateur et testez :

su - nouvelleutilisateur
sudo whoami

La sortie doit être root.

Configuration des sudoers

Le fichier sudoers détermine qui peut faire quoi. Ne modifiez jamais directement, utilisez visudo :

sudo visudo

Cela vérifie la syntaxe avant de sauvegarder le fichier.

Règles de base des sudoers

# L'utilisateur peut tout faire
utilisateur ALL=(ALL:ALL) ALL

# Le groupe peut tout faire
%sudo ALL=(ALL:ALL) ALL

# L'utilisateur peut tout faire sans mot de passe
utilisateur ALL=(ALL) NOPASSWD: ALL

# L'utilisateur ne peut que des commandes spécifiques
utilisateur ALL=(ALL) /usr/bin/apt, /usr/bin/systemctl

Explication de la syntaxe

QUI OÙ=(COMME QUI) QUOI
  • QUI : Utilisateur ou %groupe
  • : Sur quelles hôtes (ALL pour tous)
  • COMME QUI : Exécuter en tant que quel utilisateur
  • QUOI : Quelles commandes autorisées

Meilleures pratiques

Ne jamais travailler en permanence en tant que root

Connectez-vous en tant qu'utilisateur normal et utilisez sudo lorsque nécessaire.

Utilisez sudo au lieu de su

Sudo journalise tout et ne nécessite pas de mot de passe root partagé.

Limiter les droits sudo

Donnez aux utilisateurs uniquement les droits dont ils ont besoin :

webmaster ALL=(www-data) /usr/bin/composer, /usr/bin/php

Configurer un délai d'expiration sudo

Dans sudoers :

Defaults timestamp_timeout=5

Après 5 minutes, le mot de passe doit être saisi à nouveau.

Vérifier qui a des droits sudo

getent group sudo
# ou sur CentOS
getent group wheel

Dépannage

L'utilisateur n'est pas dans le fichier sudoers

L'utilisateur n'a pas de droits sudo. En tant que root ou avec un utilisateur sudo existant :

sudo usermod -aG sudo nomutilisateur

Mot de passe sudo oublié

Votre mot de passe sudo est votre propre mot de passe, pas celui de root. Si vous l'avez oublié, connectez-vous en tant que root pour le réinitialiser :

passwd nomutilisateur

Erreur de syntaxe sudoers

Si visudo signale qu'il y a une erreur de syntaxe :

sudo visudo -c

Cela montre l'emplacement de l'erreur.

Articles connexes

Besoin d'aide ?

Nous sommes là pour vous aider ! Vous rencontrez un problème ou avez des questions ? Notre équipe de support est prête à vous aider personnellement. Envoyez-nous un message via le système de tickets - nous répondons généralement dans quelques heures et sommes heureux de vous aider.