420-1Q1-AA Help

Les commandes su et sudo

Dans Linux, les commandes su et sudo sont utilisées pour effectuer des tâches nécessitant des privilèges élevés, c’est-à-dire des actions qui ne peuvent être accomplies que par l’utilisateur root (administrateur). Comprendre la différence entre ces deux commandes et leur utilisation est crucial pour gérer les permissions et la sécurité sur un système Linux.

1. su (Switch User)

La commande su est utilisée pour changer d’utilisateur. Par défaut, si vous utilisez simplement su, vous passerez à l’utilisateur root, mais vous pouvez aussi l'utiliser pour passer à d'autres comptes.

a. Utilisation de su pour Passer en Root

Pour passer à l'utilisateur root:

su -
  • -: Cette option permet de charger l’environnement complet de l’utilisateur root, comme si vous veniez de vous connecter.

Après avoir tapé cette commande, il vous sera demandé le mot de passe de root. Une fois authentifié, vous êtes connecté en tant que root et pouvez exécuter n’importe quelle commande sans restriction.

b. Utilisation de su pour Passer à un Autre Utilisateur

Vous pouvez aussi utiliser su pour passer à un autre utilisateur :

su - nom_utilisateur

Après exécution de cette commande, il vous sera demandé le mot de passe de l’utilisateur cible.

c. Exemple

  • Pour devenir root:

    su -
  • Pour passer à l’utilisateur alice:

    su - alice

2. sudo (Super User Do)

La commande sudo permet à un utilisateur normal d’exécuter des commandes spécifiques avec des privilèges élevés (ceux de l'utilisateur root). Contrairement à su, sudo ne change pas d’utilisateur ; il exécute simplement la commande demandée avec des droits administratifs.

a. Utilisation de sudo pour Exécuter une Commande

Pour utiliser sudo:

sudo commande
  • Exemple:

    sudo apt update

    Ici, l’utilisateur peut exécuter apt update avec des droits administratifs, ce qui permet de mettre à jour la liste des paquets du système.

b. Mot de Passe

Lors de l’utilisation de sudo, le mot de passe qui vous est demandé est votre propre mot de passe, pas celui de root. Cela permet un meilleur contrôle sur qui peut exécuter quelles commandes.

c. Permissions avec sudo

Seuls les utilisateurs qui font partie du groupe sudo (ou un groupe similaire, comme wheel sur certaines distributions) peuvent utiliser la commande sudo. Pour ajouter un utilisateur au groupe sudo:

sudo usermod -aG sudo nom_utilisateur

Le fichier /etc/sudoers contrôle les utilisateurs qui peuvent utiliser sudo et quelles commandes ils peuvent exécuter. Pour éditer ce fichier de manière sécurisée, il est recommandé d'utiliser la commande :

sudo visudo

Cette commande ouvre le fichier /etc/sudoers dans un éditeur de texte, en vérifiant la syntaxe avant de sauvegarder.

d. Exemple d’Utilisation

  • Pour redémarrer le système :

    sudo reboot
  • Pour modifier un fichier de configuration nécessitant des privilèges root :

    sudo nano /etc/hosts

3. Différences entre su et sudo

Aspect

su

sudo

But

Changer d’utilisateur

Exécuter une commande avec privilèges élevés

Mot de passe

Nécessite le mot de passe de root

Nécessite le mot de passe de l'utilisateur

Sécurité

Accès complet à l’environnement root

Contrôle limité à des commandes spécifiques

Utilisation

Ouverture d’une session root complète

Exécution ponctuelle de commandes

Traçabilité

Difficile de savoir qui a fait quoi

Les actions sont journalisées dans /var/log/auth.log

  • Sécurité: sudo est considéré comme plus sécurisé car il n’accorde des privilèges élevés qu’à une commande spécifique et demande un mot de passe utilisateur. Cela limite les risques en cas de mauvaise manipulation.

  • Traçabilité: Avec sudo, toutes les commandes exécutées sont journalisées dans /var/log/auth.log, ce qui permet de savoir qui a exécuté quelle commande. Ceci est important pour la sécurité et l'audit.

4. Quand Utiliser su et sudo?

  • su est souvent utilisé lorsque vous devez exécuter de nombreuses commandes en tant que root, car cela ouvre une session root persistante. Par contre, cela augmente les risques d'erreurs, car vous avez un accès complet au système sans restriction.

  • sudo est préféré pour des tâches administratives ponctuelles. Il offre un meilleur contrôle et est moins susceptible de provoquer des erreurs non intentionnelles.

5. Configuration de sudo avec visudo

Le fichier /etc/sudoers contrôle les permissions des utilisateurs pour sudo. Il est recommandé de l'éditer avec la commande visudo pour éviter les erreurs de syntaxe qui pourraient rendre sudo inutilisable.

Pour ouvrir et modifier le fichier /etc/sudoers:

sudo visudo

Voici un exemple de ligne dans le fichier sudoers:

alice ALL=(ALL:ALL) ALL
  • alice: Nom de l’utilisateur.

  • ALL: L'utilisateur peut se connecter depuis n'importe quel hôte.

  • (ALL:ALL): L'utilisateur peut exécuter des commandes en tant que n'importe quel utilisateur et n'importe quel groupe.

  • ALL: L'utilisateur peut exécuter toutes les commandes.

Conclusion

  • su est utilisé pour changer d’utilisateur, généralement vers root, et offre un accès complet à l’environnement de cet utilisateur.

  • sudo permet d’ exécuter une commande spécifique avec des privilèges élevés sans changer d’utilisateur, ce qui est plus sûr et plus contrôlé.

Pour les administrateurs système, il est recommandé d’utiliser sudo autant que possible pour minimiser les risques, limiter les actions aux commandes nécessaires, et garantir une traçabilité des actions effectuées sur le système.

Last modified: 04 November 2024