Table des matières

, , ,

Cette page est actuellement en cours de remodelage et de fusion avec d'autres pages. Merci de prévenir la liste si vous souhaiter la modifier.

La commande sudo

Tout ordinateur a besoin d'un administrateur système. C'est la personne en charge de la configuration initiale et de la maintenance du matériel et du système d'exploitation Ubuntu : installation ou désinstallation de programmes, création de comptes d'utilisateurs, paramétrage du matériel, etc.
L'administrateur est une personne ayant un compte d'utilisateur avec des privilèges supplémentaires.

Sur Ubuntu, ces privilèges peuvent s'exécuter de différentes manières, répertoriées et détaillées sur cette page (FIXME). La plus connue d'entre elle est la commande sudo, qu'on va détailler ici-même.

La commande sudo ne doit pas être utilisée à la légère : elle présente un risque non négligeable pour votre système. Lisez attentivement les remarques sur la sécurité ci-dessous.

Principe de fonctionnement

Pour effectuer des tâches privilégiées à travers l'utilitaire sudo, votre compte d'utilisateur va devoir prendre temporairement le rôle d'administrateur (aussi appelé « root » ou encore « super-utilisateur »​).

Vous disposez d'un compte ayant accès aux privilèges d'administrateur si :

Si votre compte n'a pas accès aux privilèges requis, la commande ne sera pas exécutée.

Reportez-vous à la section Configuration pour plus de détails sur l'ajout ou le retrait des privilèges d'administration à un utilisateur.

Utilisation

Si votre compte est correctement paramétré :

Important : nature des programmes lancés

Les programmes lancés par les commandes précédées de sudo ne doivent pas être n'importe lesquels.

Si vous voulez lancer un programme graphique avec des privilèges d'administrateur, consultez les alternatives recommandées sur cette page (FIXME). Si vous voulez lancer des applications comme GParted ou Synaptic sur un système avec Wayland, reportez-vous à ce paragraphe pour contourner le problème.

Configuration

Ajouter les privilèges à des utilisateurs

Seuls les administrateurs sont habilités à effectuer des tâches administratives à travers l'utilitaire sudo. Pour augmenter les privilèges accessibles à un utilisateur, vous devez vous-même avoir d'abord accès à un compte administrateur.

Pour assigner le rôle d'administrateur à un autre compte d'utilisateur :

Les changements de privilèges ne sont pas appliqués dès leur enregistrement. Ils ne sont appliqués que lorsque toutes les sessions en cours sont closes pour le compte concerné. À l'ouverture de session suivante pour ce compte, les nouveaux privilèges sont pris en compte.

Configuration avancée

On peut configurer plus finement les privilèges accordés par l'utilitaire sudo afin d'autoriser ou refuser l'exécution de tâches privilégiées. Plus que simplement autoriser l'exécution de toutes les tâches administratives à un groupe d'utilisateurs par l'authentification par mot de passe, sudo peut être paramétré pour permettre à un utilisateur particulier ou un groupe d'utilisateurs particulier d'exécuter une ou des tâches bien précises, avec ou sans saisie du mot de passe.

D'autres paramètres, tels le délai d'attente avant qu'une ré-authentification soit nécessaire, l'endroit où est enregistré le journal d’événements et le niveau de courtoisie de sudo, sont aussi paramétrables.

Reportez-vous à cette page pour découvrir la configuration avancée avec /etc/sudoers/

Remarques sur la sécurité

Le « super-utilisateur » ayant TOUS les droits sur le système, son utilisation peut être TRÈS dangereuse, pour plusieurs raisons :

Alternatives à sudo

Avantages de sudo

Le fonctionnement de sudo peut sembler complexe en comparaison à l'utilisation directe d'un compte root, qu'Ubuntu a choisi de ne pas activer par défaut.

Les avantages de l'emploi de sudo, par opposition à l'emploi direct d'un unique compte super-utilisateur (root) via la commande su, sont nombreux pour une utilisation dans un environnement domestique ou de PME/PMI :

Utilisation avancée

Au delà de ce point, les manipulations visent uniquement aux utilisateurs avancés.

Observer le journal des tâches exécutées précédemment par « sudo »

L'ensemble des actions exécutées à travers l'utilitaire sudo – qu'elles s'accomplissent avec succès ou échec – sont journalisées. Elles sont inscrites dans le fichier de journal /var/log/auth.log.

Rediriger un flux avec « sudo »

sudo pose a priori des problèmes pour la redirection de flux dans une console. Par exemple, la redirection suivante ne fonctionnera pas :

utilisateur@ordinateur:~$ sudo echo 2 > /proc/acpi/thermal_zone/ATF0/polling_frequency

La raison de cet échec est que sudo n'exécute que la première tâche (echo 2) avec l'identité empruntée ; la redirection, elle, est effectuée en mode utilisateur uniquement.

La solution, pour contourner cette limitation, est d'appeler un nouvel interpréteur de commandes et de lui faire exécuter votre redirection de flux. Par exemple :

utilisateur@ordinateur:~$ sudo sh -c 'echo 2 > /proc/acpi/thermal_zone/ATF0/polling_frequency'

De cette manière, c'est tout l'interpréteur sh et la commande passée en argument qui est exécutée avec l'identité empruntée.

Options utiles

À lire aussi


Contributeurs : AlexandreP, Chatalors, Damocles, Ju, eagle08, roschan , …