accueil > Gestion des paquets et du système > sudo

Guide de la commande sudo : Exécution de commandes avec des privilèges administratifs

`sudo` (abréviation de substitute user do ou superuser do) est un outil qui permet aux utilisateurs ordinaires d'exécuter des programmes avec les privilèges d'un autre utilisateur (généralement l'utilisateur root) sur les systèmes d'exploitation Linux et Unix. Cela permet d'effectuer des tâches administratives tout en maintenant la sécurité du système, ce qui est beaucoup plus sûr que d'exécuter toutes les tâches directement sous le compte root. Dans ce guide, découvrez les bases de l'utilisation de `sudo` et les considérations de sécurité importantes.

Aperçu de sudo

Sur les systèmes Linux, l'utilisateur root possède tous les privilèges. Cependant, effectuer toutes les tâches en tant que root présente des risques de causer des dommages catastrophiques au système par inadvertance. `sudo` est un mécanisme de sécurité important qui accorde temporairement aux utilisateurs ordinaires les privilèges administratifs nécessaires, permettant ainsi une gestion du système tout en minimisant les risques de sécurité.

Fonctionnement de sudo

`sudo` demande le mot de passe de l'utilisateur (qui n'est pas celui de root) lorsque la commande `sudo` est exécutée, et si ce mot de passe est correct, il exécute la commande avec les privilèges de root ou d'un autre utilisateur conformément aux règles définies dans le fichier `sudoers`. Une fois authentifié, l'utilisateur peut utiliser `sudo` sans avoir à ressaisir son mot de passe pendant un certain temps (par défaut 5 minutes).

Principales fonctions de sudo

  • **Renforcement de la sécurité** : Réduit les risques de sécurité en évitant les connexions inutiles avec le compte root.
  • **Suivi des responsabilités** : Toutes les commandes exécutées via `sudo` sont enregistrées dans des logs, ce qui permet de suivre qui a exécuté quelle commande d'administration et à quel moment.
  • **Contrôle des privilèges granulaire** : Le fichier `sudoers` permet de contrôler finement quels utilisateurs ou groupes peuvent exécuter certaines commandes avec des privilèges root.
  • **Atténuation de la saisie du mot de passe** : Une fois authentifié, l'utilisateur peut utiliser `sudo` sans mot de passe pendant un certain temps, ce qui est pratique.

🔑 Fichier sudoers

/etc/sudoers

Tous les paramètres de privilège de `sudo` sont définis dans le fichier `/etc/sudoers`. Ce fichier est très sensible, donc **il doit absolument être édité avec la commande `visudo`.** `visudo` vérifie automatiquement les erreurs de syntaxe pour éviter que des paramètres incorrects ne désactivent la fonction `sudo`.

Options principales de la commande sudo

La commande `sudo` permet de contrôler la manière dont elle s'exécute grâce à diverses options, en plus d'élever les privilèges.

1. Utilisation de base

2. Options liées à l'utilisateur et au shell

3. Options liées à l'authentification et à la liste

Commande générée :

Essayez de combiner les commandes.

Description:

`sudo` Exécute la commande.

Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.

Configuration du fichier sudoers (utiliser visudo)

`sudo` les privilèges sont contrôlés par le fichier `/etc/sudoers`. Au lieu de modifier ce fichier directement, vous devez utiliser la commande `visudo` pour l'éditer en toute sécurité. `visudo` vérifie les erreurs de syntaxe pour éviter de casser la fonction `sudo`.

Éditer le fichier sudoers

sudo visudo

Éditez le fichier `sudoers` en toute sécurité avec des privilèges root. L'éditeur par défaut peut être `vi`.

Format général du fichier sudoers

Les entrées du fichier `sudoers` sont définies au format `User Host=(RunAs) NOPASSWD: Command`. La configuration la plus courante est d'accorder des privilèges `sudo` pour toutes les commandes à un utilisateur appartenant à un groupe spécifique.

Exemples de configuration

Voici des exemples de configurations que l'on peut souvent trouver dans le fichier `sudoers`.

  • `%sudo ALL=(ALL:ALL) ALL`: Autorise tous les utilisateurs appartenant au groupe `sudo`, depuis n'importe quel hôte (ALL), à exécuter toutes les commandes (ALL) avec les privilèges de tous les utilisateurs (ALL). (Mot de passe requis)
  • `username ALL=(ALL) NOPASSWD: /usr/bin/apt update`: Autorise l'utilisateur `username` à exécuter la commande `apt update` avec des privilèges root sans avoir à saisir de mot de passe.

Exemples d'utilisation

Apprenez à effectuer des tâches système avec des privilèges administratifs à travers divers exemples d'utilisation de la commande `sudo`.

Mise à jour des paquets système

sudo apt update

La commande pour mettre à jour la liste des paquets du système nécessite des privilèges administratifs, donc `sudo` est utilisé.

Copier un fichier dans un répertoire spécifique

sudo cp my_config.conf /etc/

Copie le fichier `my_config.conf` dans le répertoire `/etc/`, où l'écriture n'est généralement pas autorisée.

Exécuter une commande en tant qu'un autre utilisateur

sudo -u www-data ls /var/www/html

Exécute la commande `ls /var/www/html` avec les privilèges de l'utilisateur `www-data` (généralement le processus du serveur web) pour tester les permissions d'accès aux fichiers de cet utilisateur.

Passer à un shell root

sudo -i

Entrez le mot de passe de l'utilisateur actuel pour obtenir un shell complètement basculé dans l'environnement de l'utilisateur root. Une fois le travail terminé, vous pouvez revenir à l'utilisateur d'origine en saisissant `exit`.

Vérifier les privilèges sudo de l'utilisateur actuel

sudo -l

Vérifiez quelles commandes l'utilisateur actuellement connecté peut exécuter via `sudo`, et si un mot de passe est requis.


Commandes de la même catégorie