Root et sudo dans Linux : gestion des droits expliquée
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
- OÙ : 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
- Commandes Linux de base pour l'hébergement
- Se connecter via SSH depuis Windows (PuTTY)
- Utiliser WP-CLI via SSH
- Premiers pas avec VPS après achat
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.
0 van 0 vonden dit nuttig