1.4 - Utilisateur, root, su et sudo
Linux sépare les tâches courantes des opérations d'administration. Un utilisateur normal limite l'impact d'une erreur ; root possède presque tous les droits sur le système.
Identifier l'utilisateur et ses groupes
whoami
id
groups
Afficher les sessions ouvertes :
who
w
Exécuter une commande avec sudo
sudo systemctl restart ssh
sudo apt update
sudo exécute uniquement la commande qui suit avec des privilèges élevés. Le mot de passe demandé est normalement celui de l'utilisateur courant.
Tester ses autorisations :
sudo -v # valider ou renouveler l'authentification
sudo -l # lister les commandes autorisées
sudo -k # oublier immédiatement l'authentification en cache
Ouvrir un shell d'administration seulement lorsque cela est nécessaire :
sudo -i
exit
Différence entre su et sudo
su - utilisateur
su -
su - utilisateurouvre une session de connexion pour cet utilisateur.su -tente d'ouvrir une sessionrootet demande généralement le mot de passe deroot.sudo -iutilise les règlessudoet conserve une trace des commandes lancées.
Sur certaines distributions, le compte root n'a volontairement pas de mot de passe utilisable ; l'administration passe alors par sudo.
Redirections et privilèges
Cette commande peut échouer, car la redirection > est réalisée par le shell normal avant sudo :
sudo echo "127.0.0.1 exemple.local" > /etc/hosts
Utiliser tee :
echo "127.0.0.1 exemple.local" | sudo tee -a /etc/hosts
Pour modifier un fichier système de manière contrôlée :
sudoedit /etc/hosts
sudoedit copie temporairement le fichier, ouvre l'éditeur avec l'identité normale, puis remet le résultat en place avec les droits requis.
Règles de prudence
- Rester utilisateur normal pour les tâches habituelles.
- Vérifier les chemins avant toute commande précédée de
sudo. - Ne jamais lancer un script inconnu avec
curl ... | sudo sh. - Ne pas modifier
/etc/sudoersdirectement ; utilisersudo visudo. - Quitter un shell
rootdès la tâche terminée. - Préférer une commande précise à une session administrateur prolongée.