En résumé
- Utilisez sudo pour exécuter une seule commande avec les privilèges administrateur.
- Utilisez sudo -i pour ouvrir temporairement un shell root si votre compte est autorisé à utiliser sudo.
- La commande su – demande le mot de passe root et échoue si le compte root est désactivé ou inaccessible.
- Vérifiez avec whoami, puis quittez avec exit ou Ctrl+D dès que vous avez terminé.
Pour exécuter une commande ponctuelle, utilisez sudo si votre compte y est autorisé. Pour ouvrir temporairement un shell root, utilisez sudo -i. su – exige un compte root actif et son mot de passe.
Choisissez selon votre besoin :
- Une seule commande :
sudo <commande> - Un shell root temporaire :
sudo -i - Le compte root directement :
su -, avec un mot de passe root actif
Avec sudo, le mot de passe demandé est généralement celui de votre utilisateur. Avec su -, c’est le mot de passe root.
sudo et su : deux méthodes différentes
sudo exécute une commande ou ouvre un shell avec des privilèges administrateur, si votre compte dispose de l’autorisation nécessaire. su change d’utilisateur : su - vous fait basculer vers le compte root et son environnement de connexion.
La différence essentielle concerne donc à la fois le résultat et l’authentification :
| Méthode | Résultat | Mot de passe généralement demandé | Prérequis |
|---|---|---|---|
sudo <commande> |
Une commande exécutée avec les privilèges root | Utilisateur courant | Autorisation sudo |
sudo -i |
Shell root interactif de connexion | Utilisateur courant | Autorisation sudo |
sudo -s |
Shell privilégié | Utilisateur courant | Autorisation sudo |
su - |
Bascule vers l’environnement root | Compte root | Compte root actif et mot de passe connu |
Exécuter une seule commande avec sudo
Pour une opération isolée, ajoutez sudo devant la commande concernée :
sudo <commande-administrative>
Seule la commande indiquée s’exécute avec les privilèges administrateur. Cette approche limite la durée et la portée d’une éventuelle erreur ; elle est donc généralement préférable à l’ouverture d’un shell root pour une action unique. Pour poursuivre avec une vérification système concrète, découvrez comment vérifier les ports ouverts sous Linux.
Lorsque sudo demande un mot de passe, saisissez généralement celui de votre utilisateur courant, et non celui de root. Aucun caractère ne s’affiche pendant la saisie : c’est normal dans un terminal Linux.
Ouvrir un shell root temporaire avec sudo -i
Pour enchaîner plusieurs commandes dans un environnement root, utilisez :
sudo -i
Cette commande ouvre un shell root interactif de connexion. Elle exige une autorisation sudo, mais pas nécessairement un mot de passe root : sudo utilise généralement le mot de passe de votre compte courant.
sudo -i n’active pas durablement le compte root. La commande élève les privilèges du shell ouvert dans le terminal, même lorsque la connexion directe au compte root est désactivée.
Vérifier l’utilisateur actif
Après l’ouverture du shell, vérifiez explicitement l’identité courante :
whoami
Le résultat attendu est :
root
Une invite qui se termine par # constitue seulement un indice ; whoami confirme réellement l’utilisateur actif.
Quitter le shell root
Dès que l’administration est terminée, fermez le shell avec :
exit
Ctrl+D produit le même effet. Vous revenez alors à votre utilisateur normal et évitez de lancer par inadvertance d’autres commandes avec les droits root.
Utiliser sudo -s, sudo su ou sudo su –
sudo -s : ouvrir un shell privilégié
sudo -s
sudo -s ouvre un shell avec des privilèges élevés en utilisant votre autorisation sudo et, généralement, le mot de passe de votre compte. Son environnement peut différer de celui de sudo -i : le répertoire courant, le PATH et certaines variables ne sont pas nécessairement chargés de la même manière.
Si vous recherchez explicitement l’environnement de connexion root, préférez sudo -i.
sudo su et sudo su –
sudo su
sudo su -
Ces commandes combinent sudo et su et peuvent ouvrir un shell root. Elles sont toutefois moins lisibles que sudo -i pour l’usage courant. Dans sudo su -, le tiret demande l’environnement de connexion de root ; le PATH, les variables et le répertoire courant dépendent de la configuration.
su – ou su -l : basculer vers root
su -
La forme longue est :
su -l
Le tiret indique une bascule vers l’environnement de connexion de root. Cette méthode demande le mot de passe root, pas celui de l’utilisateur courant. Elle échoue si le compte root est désactivé, si son mot de passe est inaccessible ou si la configuration interdit cette bascule.
Quelle commande choisir ?
| Besoin | Commande | Choix pratique |
|---|---|---|
| Exécuter une opération isolée | sudo <commande> |
Privilèges limités à cette commande |
| Enchaîner des commandes dans un environnement root | sudo -i |
Shell root temporaire et environnement de connexion |
| Ouvrir un shell privilégié sans mot de passe root | sudo -s |
Utilise l’autorisation sudo et le mot de passe courant |
| Basculer directement vers le compte root | su - |
Compte root actif et mot de passe connu |
Dans la plupart des cas, commencez par sudo pour une commande unique. Réservez sudo -i à une série d’actions qui nécessite réellement un shell root, puis quittez-le dès que possible. Pour appliquer ces privilèges au pare-feu, consultez comment ouvrir un port sous Linux.
Pourquoi su – échoue-t-il sur certaines distributions ?
Un système Linux peut avoir un compte root désactivé ou limité pour les connexions directes. Dans ce cas, su - échoue alors que sudo peut fonctionner normalement pour un utilisateur autorisé.
Ubuntu
Sur Ubuntu, le compte root est généralement inactif par défaut pour les connexions directes. L’administration passe alors par un compte utilisateur autorisé à utiliser sudo. L’échec de su - ne signifie donc pas que les privilèges administrateur sont indisponibles.
Debian
Debian peut être installé avec un compte root actif ou avec une configuration centrée sur sudo, selon les choix effectués pendant l’installation. Sur une installation minimale, sudo peut ne pas être installé par défaut. Le comportement dépend de l’installation et de la configuration retenues.
Les commandes restent similaires, mais les choix par défaut ne sont pas uniformes entre Debian, Ubuntu, Kali, Fedora, Arch et les autres distributions.
Faut-il activer le compte root ?
Non, pas pour utiliser sudo. Un utilisateur autorisé peut exécuter des commandes administratives ou ouvrir un shell root temporaire sans disposer d’une connexion directe au compte root.
Lorsque l’activation du compte est appropriée, la commande couramment utilisée pour définir un mot de passe root est :
sudo passwd root
Cette commande n’est ni obligatoire ni recommandée dans tous les cas. Elle peut rendre le compte utilisable avec su -, mais définir un mot de passe ne garantit pas à lui seul une connexion directe depuis une interface graphique, une console TTY ou un accès distant : chaque accès peut rester bloqué par sa propre configuration.
Pour l’administration courante, conserver le compte root non accessible directement et utiliser sudo avec un compte nominatif est généralement plus simple à contrôler.
Connexion root par SSH ou depuis l’interface graphique
Connexion distante par SSH
La connexion directe en root par SSH dépend de la configuration du serveur, notamment du paramètre PermitRootLogin. Elle n’est pas activée ni autorisée de la même manière sur toutes les distributions.
La méthode habituelle consiste à ouvrir une session SSH avec un utilisateur autorisé, puis à utiliser sudo. Une connexion root distante n’est donc pas nécessaire pour administrer la machine.
Connexion depuis l’écran graphique
Les gestionnaires de connexion et les environnements de bureau désactivent ou limitent souvent la connexion graphique en root. Une session graphique root augmente la portée des erreurs et n’est généralement pas nécessaire pour administrer Linux.
Préférez un terminal avec sudo, ou sudo -i lorsque plusieurs commandes le justifient.
Dépannage rapide
| Situation | Cause probable | Action |
|---|---|---|
sudo refuse l’accès |
Le compte ne possède pas l’autorisation sudo nécessaire | Lire le message et vérifier les droits administratifs du compte |
| Le mot de passe sudo est refusé | Le mot de passe saisi n’est pas celui de l’utilisateur courant, ou l’authentification échoue | Utiliser le mot de passe du compte courant, pas celui de root |
su - échoue |
Le compte root est désactivé, son mot de passe est inactif ou il est inconnu | Vérifier la configuration et utiliser sudo si le compte y est autorisé |
La connexion échoue après sudo passwd root |
La connexion directe reste interdite par le terminal, l’interface graphique ou le service distant | Distinguer le mot de passe root de l’autorisation de connexion |
| Le fichier sudoers est invalide | Une erreur de syntaxe ou de permissions empêche sudo de lire sa configuration | Ne pas modifier sudoers au hasard ; suivre la procédure de récupération propre à la distribution |
Si sudoers est inutilisable et qu’aucun autre compte administrateur ne permet d’intervenir, une récupération depuis un environnement externe, comme un support Live, peut être nécessaire. Les étapes dépendent du système installé.
Bonnes pratiques avec les privilèges root
- Préférez sudo pour une commande ponctuelle.
- Utilisez
sudo -iuniquement lorsqu’un shell root est réellement nécessaire. - Vérifiez l’identité avec whoami avant une opération sensible.
- Ne vous fiez pas uniquement au changement d’invite vers
#. - Fermez le shell avec exit ou Ctrl+D dès que l’opération est terminée.
- Évitez les connexions root graphiques ou distantes lorsqu’elles ne sont pas indispensables.
Avis d’Expert
sudo est le choix par défaut pour une commande isolée ; sudo -i convient lorsqu’un shell root temporaire est nécessaire, tandis que su - suppose un compte root actif et un mot de passe disponible. Vérifiez avec whoami, quittez avec exit ou Ctrl+D, et n’activez pas une connexion root graphique ou distante sans besoin précis.



