Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
utilisateurs:roschan:sudo [Le 08/10/2017, 00:09] Roschan [Principe de fonctionnement] |
utilisateurs:roschan:sudo [Le 08/06/2018, 19:21] (Version actuelle) fabux mise en forme note d'intro |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
{{tag>administration sécurité droits sudo}} | {{tag>administration sécurité droits sudo}} | ||
------ | ------ | ||
+ | |||
+ | <note help>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. | ||
+ | |||
+ | * Cette page doit fusionner elle-même avec [[:sudo-annexe]] -> **fait** | ||
+ | * Le but étant de faire une page "conforme au template" pour sudo -> **fait** | ||
+ | * [[:utilisateurs:roschan:elevation_privileges|Page utilisateur roschan - elevation_privileges]] : faire un tuto propre user-friendly ->**fait** | ||
+ | * :!: il faudra y échanger les backlinks -> **pas fait** :!: | ||
+ | * [[:utilisateurs:roschan:elevation_privileges_avances|Page utilisateur roschan - elevation_privileges_avances]] : un tuto avancé sans la partie obsolète sur gksudo -> **en cours** | ||
+ | </note> | ||
====== La commande sudo ====== | ====== La commande sudo ====== | ||
- | Tout ordinateur a besoin d'un administrateur système. Cette personne est en charge de la configuration initiale et de la maintenance de votre matériel et de votre système d'exploitation Ubuntu : installation ou désinstallation de programmes, création de comptes d'utilisateurs, paramétrage du matériel, etc. \\ | + | 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. | L'administrateur est une personne ayant un compte d'utilisateur avec des **privilèges** supplémentaires. | ||
Ligne 19: | Ligne 28: | ||
* un administrateur a promu manuellement votre compte d'utilisateur au rôle d'administrateur. | * un administrateur a promu manuellement votre compte d'utilisateur au rôle d'administrateur. | ||
- | Reportez-vous à la section [[#Configuration]] pour plus de détails sur l'ajout ou le retrait des privilèges d'administration à un utilisateur. | + | <note>Si votre compte n'a pas accès aux privilèges requis, la commande ne sera pas exécutée.</note> |
+ | Reportez-vous à la section [[#Configuration]] pour plus de détails sur l'ajout ou le retrait des privilèges d'administration à un utilisateur. | ||
===== Utilisation ===== | ===== Utilisation ===== | ||
Ligne 38: | Ligne 48: | ||
* Si votre système utilise [[:Xorg]], ça représente une potentielle faille de sécurité ; | * Si votre système utilise [[:Xorg]], ça représente une potentielle faille de sécurité ; | ||
* Des corruptions des droits de fichiers peuvent entraîner des bugs importants. | * Des corruptions des droits de fichiers peuvent entraîner des bugs importants. | ||
+ | * Na lancez pas avec ''sudo'' de programmes d'origine douteuse. | ||
* Ne lancez pas avec ''sudo'' de programmes qui vous demandent déjà tous seuls les droits adéquats : la plupart des programmes exigeant des droits spécifiques les demanderont eux-mêmes, c'est notamment le cas des programmes graphiques d'installation de paquets, des éditeurs de partitions, ... | * Ne lancez pas avec ''sudo'' de programmes qui vous demandent déjà tous seuls les droits adéquats : la plupart des programmes exigeant des droits spécifiques les demanderont eux-mêmes, c'est notamment le cas des programmes graphiques d'installation de paquets, des éditeurs de partitions, ... | ||
Ligne 44: | Ligne 55: | ||
===== Configuration ===== | ===== Configuration ===== | ||
+ | ==== Ajouter les privilèges à des utilisateurs ==== | ||
- | <note help>-------------- | + | 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. |
- | cette page doit fusionner elle-même avec https://doc.ubuntu-fr.org/sudo-annexe | + | Pour assigner le rôle d'administrateur à un autre compte d'utilisateur : |
+ | * **Via les paramètres du système :** la procédure peut légèrement varier en fonction des [[:environnements]], mais il s'agit toujours d'ouvrir les paramètres du système, puis de cliquer sur "Utilisateurs" (ou "Utilisateurs et groupes"), sélectionner un utilisateur, et modifier son niveau de privilèges. | ||
+ | * **Via [[:users-admin#changer_le_type_de_compte_d_utilisateur|l'utilitaire "Utilisateurs et groupes"]]** si celui-ci est présent sur votre système ; | ||
+ | * **Via un terminal :** Ouvrez un terminal et exécutez la commande suivante : <code>sudo adduser <identifiant> sudo</code>où ''<identifiant>'' doit être remplacé par l'identifiant du compte d'utilisateur (sans les <chevrons>) auquel des privilèges supplémentaires doivent être accordés. | ||
- | le but étant de faire une page "conforme au template" pour sudo \\ | + | <note help>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.</note> |
- | et ici -> https://doc.ubuntu-fr.org/utilisateurs/roschan/elevation_privileges on fera un tuto propre user-friendly (il faudra échanger les backlinks) \\ | + | |
- | et ici -> https://doc.ubuntu-fr.org/utilisateurs/roschan/elevation_privileges un tuto avancé avec tout le bullshit obsolète sur gkmachin | + | |
- | ------ | + | ==== Configuration avancée ==== |
- | Plan provisoire : | + | 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. |
- | - principe de fonctionnement | + | 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. |
- | - utilisation | + | |
- | - configuration | + | |
- | - ajouter des utilisateurs | + | |
- | - sudoers | + | |
- | - remarques sur la sécurité | + | |
- | - utilisation avancée | + | |
- | - voir aussi | + | |
- | --------------------</note> | + | Reportez-vous à **[[:sudoers|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 : | ||
- | Dans Ubuntu, l'accomplissement de tâches privilégiées (ou tâches d'administration) s'effectue à travers un « filtre » puissant appelé **sudo**. Son principe est le suivant: | + | * Une **manipulation dangereuse** de votre part. Il est possible que vos manipulations ça aboutisse au dérèglement d'une partie du système. Soyez toujours certain du résultat attendu de vos commandes avant de les lancer. |
- | * Toutes les tâches administratives ne peuvent être exécutées qu'à travers l'utilitaire d'administration ''sudo''. Exécutée hors-''sudo'', la tâche est bloquée ; | + | |
- | * Lorsqu'un utilisateur tente d'exécuter une tâche administrative à travers le filtre ''sudo'', cet utilitaire vérifie que cet utilisateur a le droit d'effectuer cette tâche. Dans le cas contraire, il bloque la tâche. | + | |
+ | * Une **erreur de votre part**. Même pour une manipulation supposée sans risque, la moindre faute de frappe dans les commandes peut aboutir à de graves problèmes. | ||
- | ===== Préalables ===== | + | * Du **code malveillant**. Si vous exécutez un programme ou un [[:bash|script]] malveillant avec les droits de super-utilisateur, celui-ci n'aura aucun mal à prendre le contrôle du système en totalité et à s'implanter en profondeur dans le système. |
- | Pour effectuer des tâches administratives à travers l'utilitaire ''sudo'', votre compte d'utilisateur doit être promu au rôle d'administrateur (aussi appelé <<super-utilisateur>>). | + | * Sur les systèmes utilisant [[:Xorg]], faire cohabiter les fenêtres de l'utilisateur avec ceux du super-utilisateur au sein de la même session représente une **faille de sécurité potentielle**, qui a en partie motivée la création de [[:Wayland]]. C'est entre autres pourquoi il est déconseillé de lancer des programmes graphiques avec ''sudo''. |
- | Vous disposez d'un compte d'administrateur lorsque : | + | ==== Alternatives à sudo ==== |
- | * votre compte d'utilisateur est celui qui a été créé au moment de l'installation d'Ubuntu. Par défaut, ce compte est un compte privilégié, et c'est le seul compte privilégié ; | + | |
- | * ou lorsqu'un administrateur a promu manuellement votre compte d'utilisateur au rôle d'administrateur. | + | |
- | Rapportez-vous à la section [[#comment_assigner_le_role_d_administrateur_a_un_compte_d_utilisateur|"Comment assigner le rôle d'administrateur à un compte d'utilisateur ?"]] pour apprendre comment promouvoir un compte d'utilisateur existant au rôle d'administrateur, ou à la section [[:sudoers#ajout_ou_retrait_de_privileges_a_un_compte_d_utilisateur_ou_un_groupe_d_utilisateurs|"Ajout ou retrait de privilèges à un compte d'utilisateur ou un groupe d'utilisateurs"]] pour configurer plus finement les privilèges accordés par l'utilitaire ''sudo''. | + | * [[:polkit]] fonctionne selon un principe différent : un programme ("démon") s'exécute en arrière-plan (sans fenêtre), et dispose des droits root. Les applications sont invitées à lui demander les droits nécessaires pour effectuer des opérations spécifiques. Cela évite de lancer des programmes graphiques en tant que super-utilisateur, ça évite également d'utiliser ''sudo'' pour des commandes n'en ayant pas besoin, la sécurité est donc accrue, et moins d'actions sont requises de la part de l'utilisateur (**ce sont les applications qui demandent les droits**, pas l'utilisateur). Parmi les programmes capables d'utiliser PolKit, on peut citer : |
+ | * [[:gnome-packagekit|GNOME Paquets]] | ||
+ | * [[:gnome-software|GNOME Logiciels]] | ||
+ | * [[:plasma-discover|Plasma Discover]] | ||
+ | * [[:Nautilus]] | ||
+ | * [[:Kate]] | ||
+ | * Les paramètres système (concernant l'ajout d'utilisateur par exemple) | ||
+ | * etc. | ||
+ | * ''su'' permet de se connecter en tant que super-utilisateur de manière durable. C'est extrêmement dangereux, ne faites pas ça à la légère. | ||
- | ===== Utilisation ===== | + | ==== Avantages de sudo ==== |
- | <note important>Si vous utilisez le protocole d'affichage [[:Wayland]] (protocole d'affichage par défaut à partir d'Ubuntu [[:artful|17.10]] avec l'environnement [[:GNOME Shell]]), les manipulations qui suivent ne fonctionneront pas toutes : reportez-vous à [[:wayland#impossible_de_lancer_une_application_comme_admin|ce paragraphe de la page dédiée]] pour contourner le problème.</note> | + | |
- | + | ||
- | ==== Exécuter une application graphique (Ubuntu, Xubuntu) ==== | + | |
- | + | ||
- | - L'utilitaire **gksudo** (ou **gksu**) n'est pas installé par défaut dans les [[:versions]] d'Ubuntu [[:trusty|Trusty 14.04]] et au-delà. [[:tutoriel/comment_installer_un_paquet|Installez le paquet]] **[[apt>gksu]]** | + | |
- | - Appuyez sur les touches [ALT]+[F2] de votre clavier pour ouvrir une invite d'exécution de programme; | + | |
- | - Saisissez l'instruction suivante pour exécuter le programme de votre choix à travers l'utilitaire **gksudo** ou **gksu**: <code>gksudo "nom du programme"</code> \\ {{ :sudo-gksudo1.png?300 |Saisissez l'instruction sous la forme « gksudo "nom du programme" » (ex : « gksudo "update-manager" »). }} {{ :sudo-gksudo1-1.png?300 |Saisissez l'instruction sous la forme « gksudo nom du programme » (ex : « gksudo xdg-open /etc/default/grub »).}} | + | |
- | - Cliquez sur le résultat; | + | |
- | - Un dialogue de saisie de mot de passe s'affiche. Saisissez le mot de passe de votre compte d'utilisateur actuel. \\ {{ :sudo-gksudo2.png?300 |Saisissez *votre* mot de passe.}} \\ | + | |
- | Si vous n'avez pas entré un mot de passe erroné, votre programme se charge en mode privilégié. En cas d'erreur dans votre mot de passe, recommencez les opérations ci-dessus. \\ Lors du succès de l'authentification, les tâches administratives sont débloquées pour une durée de 15 minutes : \\ votre mot de passe ne vous sera pas demandé dans les 15 minutes suivantes pour effectuer d'autres tâches administratives. | + | |
- | + | ||
- | ==== Exécuter une application graphique (Kubuntu) ==== | + | |
- | + | ||
- | - Appuyez sur les touches [ALT]+[F2] de votre clavier pour ouvrir une invite d'exécution de programme ; \\ \\ | + | |
- | - Saisissez l'instruction suivante pour exécuter le programme de votre choix à travers l'utilitaire **sudo** : <code>kdesudo "nom du programme"</code>Utilisez les guillemets anglais pour entourer le nom de votre programme, particulièrement si celui-ci utilise plusieurs arguments. \\ {{ :sudo-kdesudo1.png?300 |Saisissez l'instruction sous la forme « gksudo "nom du programme" » (ex : « kdesudo "kpackagekit" »). }} \\ | + | |
- | - Un dialogue de saisie de mot de passe s'affiche. Saisissez le mot de passe de votre compte d'utilisateur actuel. \\ {{ :sudo-kdesudo2.png?300 |Saisissez *votre* mot de passe.}} \\ | + | |
- | Si vous n'avez pas entré un mot de passe erroné, votre programme se charge en mode privilégié. En cas d'erreur dans votre mot de passe, recommencez les opérations ci-dessus. Lors du succès de l'authentification, les tâches administratives sont débloquées pour une durée de 15 minutes : votre mot de passe ne vous sera pas demandé dans les 15 minutes suivantes pour effectuer d'autres tâches administratives. | + | |
- | + | ||
- | + | ||
- | ==== Exécuter une application graphique sous 14.04 et versions ultérieures ==== | + | |
- | + | ||
- | Dans un [[:terminal|terminal]], saisissez la commande suivante : <code>pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY "nom du programme"</code> | + | |
- | + | ||
- | + | ||
- | ==== Exécuter une application ou une commande en console (toutes variantes) ==== | + | |
- | + | ||
- | - Ouvrez [[:terminal|une fenêtre de terminal]] ; \\ {{ :sudo-sudo1.png?300 |Ouvrez une fenêtre de terminal dans Ubuntu}} \\ | + | |
- | - Saisissez l'instruction suivante pour exécuter une commande en mode console à travers l'utilitaire **sudo**, puis appuyez sur la touche [Entrée] de votre clavier : <code>sudo <commande></code>Inscrivez votre commande sans les crochets, même si votre commande contient plusieurs arguments. \\ {{ :sudo-sudo2.png?300 |Saisissez l'instruction sous la forme « sudo <commande> » (ex : « sudo apt-get update »). }} \\ | + | |
- | - Un dialogue de saisie de mot de passe s'affiche. Saisissez le mot de passe de votre compte d'utilisateur actuel. Aucun caractère n'apparaît lorsque vous saisissez des caractères sur votre clavier ; ceci est normal. Même si rien n'apparaît à l'écran, votre mot de passe est pris en compte. | + | |
- | Si vous n'avez pas entré un mot de passe erroné, votre commande s'exécute immédiatement en mode privilégié. En cas d'erreur dans votre mot de passe, recommencez les opérations ci-dessus. Lors du succès de l'authentification, les tâches administratives sont débloquées pour une durée de 15 minutes : votre mot de passe ne vous sera pas demandé dans les 15 minutes suivantes pour effectuer d'autres tâches administratives. | + | |
- | + | ||
- | + | ||
- | ==== Quand doit-on utiliser sudo/gksudo/kdesudo ? ==== | + | |
- | + | ||
- | **La règle est simple :** | + | |
- | * Pour exécuter un programme en mode //graphique//, utilisez **gksudo** (Ubuntu et Xubuntu) ou **kdesudo** (Kubuntu) ; | + | |
- | * Pour exécuter une commande en mode console, utilisez **sudo**. | + | |
- | + | ||
- | <note tip>**Prenez de bonnes habitudes !** \\ À l'heure actuelle, on trouve plusieurs fois dans cette documentation, dans le forum et dans le planet l'instruction ''sudo <commande>'' pour exécuter de nombreux programmes en mode graphique avec des privilèges d'administration. \\ Bien que ceci fonctionne quand même pour de nombreux programmes, vous devriez prendre l'habitude de lui préférer ''gksudo'' ou ''kdesudo''. \\ Utiliser ''sudo'' pour exécuter des applications en mode graphique peut causer des problèmes dans votre session utilisateur courante, vous empêchant de poursuivre votre travail.((''gksudo'' paramètre le dossier personnel (la variable d'environnement ''$HOME'') pour l'application exécutée en mode privilégiée à ///root// plutôt qu'à ///home/<identifiant>// et copie le fichier ''.Xauthority'' dans un dossier temporaire. \\ Ceci empêche que des fichiers du dossier personnel de l'utilisateur changent de propriétaire (et donc corrompent la session graphique en cours).))</note> | + | |
- | + | ||
- | ---- | + | |
- | ===== Comment assigner le rôle d'administrateur à un compte d'utilisateur ? ===== | + | |
- | + | ||
- | {{ :sudo-promoadmin.png?250|Promouvoir un compte d'utilisateur au rang d'administrateur dans Ubuntu 10.04 LTS}} | + | |
- | + | ||
- | Seuls les administrateurs sont habilités à effectuer des tâches administratives à travers l'utilitaire ''sudo''. Pour augmenter les privilèges d'un compte d'utilisateur, vous devez vous-même être d'abord un administrateur. | + | |
- | Pour assigner le rôle d'administrateur à un autre compte d'utilisateur: | + | |
- | * **Dans Ubuntu et Xubuntu :** utilisez [[:users-admin#changer_le_type_de_compte_d_utilisateur|le module de gestion des utilisateurs du panneau de configuration système]] pour modifier ses privilèges ; | + | |
- | * **Dans Kubuntu :** utilisez [[:kcmshell4_userconfig|le module de gestion des comptes d'utilisateurs du panneau d'administration de KDE]] pour modifier ses privilèges ; | + | |
- | * **En mode console :** Ouvrez un terminal et exécutez la commande suivante : <code>sudo adduser <identifiant> sudo</code>où ''<identifiant>'' doit être remplacé par l'identifiant du compte d'utilisateur (sans les <chevrons>) auquel des privilèges supplémentaires doivent être accordés. | + | |
- | + | ||
- | Notez que 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 ce compte-là. À l'ouverture de session suivante pour ce compte, les nouveaux privilèges sont pris en compte. | + | |
- | + | ||
- | Rapportez-vous à la section [[:sudoers#ajout_ou_retrait_de_privileges_a_un_compte_d_utilisateur_ou_un_groupe_d_utilisateurs|"Ajout ou retrait de privilèges à un compte d'utilisateur ou un groupe d'utilisateurs"]] pour configurer plus finement les privilèges accordés par l'utilitaire ''sudo''. | + | |
- | + | ||
- | + | ||
- | ===== Aller plus loin ===== | + | |
- | + | ||
- | ==== Configuration avancée de l'utilitaire sudo ==== | + | |
- | + | ||
- | ''sudo'' peut être paramétré finement pour 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. | + | |
- | * //**[[:sudoers|Configuration avancée de /etc/sudoers]]**// | + | |
- | ==== Les 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''), sont nombreux pour une utilisation dans un environnement domestique ou de PME/PMI : | + | 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 : |
- | * L'installateur d'Ubuntu doit poser moins de questions. Ceci est particulièrement important pour le nouvel arrivant, qui peut ne pas être au courant de l'utilité du compte super-utilisateur et de son potentiel dangereux ; | + | * L'installateur d'Ubuntu est ainsi plus concis. |
- | * Les administrateurs n'ont pas à se souvenir d'un mot de passe supplémentaire, qu'ils peuvent facilement oublier, ou compromettre la sécurité du compte ''root'' par des mauvaises habitudes ; | + | * Les administrateurs n'ont pas à se souvenir d'un mot de passe supplémentaire. |
- | * Cela évite le comportement du « Je peux tout faire sur ma machine » : \\ avant d'effectuer une action d'administration, Ubuntu vous demande votre mot de passe, ce qui devrait faire réfléchir les administrateurs aux conséquences de leur action ; | + | * Cela évite le comportement du « Je peux faire n'importe quoi sur ma machine » : \\ avant d'effectuer une action d'administration, Ubuntu vous demande votre mot de passe, ce qui devrait faire vous réfléchir sur les conséquences de vos actions ; |
* ''sudo'' conserve une trace de toutes les commandes exécutées. Si un problème apparaît, vous pourrez toujours consulter ce journal afin de retrouver la commande ayant causé le problème ; | * ''sudo'' conserve une trace de toutes les commandes exécutées. Si un problème apparaît, vous pourrez toujours consulter ce journal afin de retrouver la commande ayant causé le problème ; | ||
* Tous les pirates tentant de pénétrer par la force brute votre système savent qu'il existe un compte appelé ''root'' et essaieront de pirater celui-ci d'abord. Ils ne connaissent pas les identifiants des autres utilisateurs de votre ordinateur ; | * Tous les pirates tentant de pénétrer par la force brute votre système savent qu'il existe un compte appelé ''root'' et essaieront de pirater celui-ci d'abord. Ils ne connaissent pas les identifiants des autres utilisateurs de votre ordinateur ; | ||
- | * Ceci permet un transfert rapide des droits d'administration, autant pour du long que pour du court terme, par le simple ajout ou retrait d'un utilisateur dans le groupe d'administration. Le tout, sans compromettre la sécurité de votre environnement informatique par le partage d'un mot de passe unique pour le compte ''root'' ; | + | * Ceci permet un transfert rapide des droits d'administration, sans compromettre la sécurité de votre environnement informatique par le partage d'un mot de passe unique pour le compte ''root'' ; |
- | * ''sudo'' peut être configuré avec une politique bien plus affinée. | + | * ''sudo'' peut être configuré avec de manière affinée. |
+ | ===== Utilisation avancée ===== | ||
- | ==== « sudo » n'est-il pas moins sécurisé que « su root » ? ==== | + | <note important>Au delà de ce point, les manipulations visent uniquement aux utilisateurs avancés.</note> |
- | + | ||
- | Le modèle de sécurité à la base est le même, et les deux modèles partagent une même faiblesse. Tout utilisateur utilisant ''su root'' ou ''sudo'' pour effectuer des tâches administratives doit être considéré comme un utilisateur privilégié. \\ Si le compte de l'utilisateur est compromis par un attaquant, celui-ci peut aussi obtenir une élévation de privilèges et compromettre le système d'exploitation. \\ Les utilisateurs ayant les droits d'administration doivent être protégés avec les mêmes soins que le compte super-utilisateur. | + | |
- | + | ||
- | Sur une note plus ésotérique, on remarque que ''sudo'' encourage la modification des habitudes de travail, qui peuvent provoquer un impact positif sur la sécurité du système d'exploitation. \\ ''sudo'' est habituellement utilisé pour exécuter une commande unique, alors que ''su root'' est souvent utilisé pour exécuter un terminal ''root'' et exécuter des multiples commandes. \\ L'approche de ''sudo'' réduit la possibilité qu'un terminal ''root'' soit laissé ouvert indéfiniment sur le poste de travail et encourage l'utilisateur à minimiser son utilisation des privilèges d'administration. | + | |
==== Observer le journal des tâches exécutées précédemment par « sudo » ==== | ==== 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**//. | + | 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**''. |
- | + | ||
- | + | ||
- | ==== Ouvrir un terminal en mode root ==== | + | |
- | + | ||
- | Utiliser ''sudo'' pour exécuter une seule commande ne cause pas un réel désagrément, mais il peut être désagréable de l'utiliser pour exécuter une longue procédure nécessitant plusieurs interventions en mode super-utilisateur (''root''). \\ L'ouverture d'un terminal en mode ''root'' permet d'éviter d'avoir à appeler ''sudo'' à chacune des étapes de cette procédure, sans avoir à activer l'accès au compte d'utilisateur ''root''. \\ L'inconvénient de cette méthode est qu'aucune trace des actions posées n'est inscrite dans le journal de ''sudo'' (sinon l'ouverture du terminal ''root'' lui-même). Il est déconseillé d'ouvrir un terminal ''root''. | + | |
- | + | ||
- | Pour vous servir d'un terminal ''root'' : | + | |
- | - Ouvrez [[:terminal|une fenêtre de terminal]] ; | + | |
- | - Saisissez la commande suivante : <code bash>utilisateur@ordinateur:~$ sudo -i</code> | + | |
- | - Saisissez votre mot de passe à l'invite de saisie de mot de passe ; | + | |
- | - Exécutez votre série de commandes d'administration ; | + | |
- | - Fermez la session ''root'' : <code bash>root@ordinateur:~# exit</code> ou ''Ctrl+D'' | + | |
==== Rediriger un flux avec « sudo » ==== | ==== Rediriger un flux avec « sudo » ==== | ||
Ligne 193: | Ligne 126: | ||
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 : <code bash>utilisateur@ordinateur:~$ sudo sh -c 'echo 2 > /proc/acpi/thermal_zone/ATF0/polling_frequency'</code>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. | 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 : <code bash>utilisateur@ordinateur:~$ sudo sh -c 'echo 2 > /proc/acpi/thermal_zone/ATF0/polling_frequency'</code>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 ==== | ||
- | ===== Les comptes super-utilisateurs d'applications particulières ===== | + | * **sudo -k** termine une session sudo éventuellement ouverte, cela assure que la prochaine instruction sudo demandera bien un mot de passe. |
- | + | * **sudo -s** ouvre le shell spécifié dans ''/etc/passwd'' pour l'utilisateur cible (root par défaut). | |
- | Certains programmes ou services nécessitent des comptes super-utilisateurs. C'est généralement le cas avec des systèmes de bases de données (comme MySQL). Prenez note que ce compte super-utilisateur est indépendant de celui du système d'exploitation : il est unique au programme ou service en particulier. | + | * **sudo -i** simule un login initial et ouvre le [[:bash|shell]] spécifié dans ''/etc/passwd'' pour l'utilisateur cible (root par défaut). Cela signifie que des fichiers spécifiques tels que .login ou .profile seront lus par le shell ainsi lancé. |
- | Si un tel programme ou service nécessite un compte super-utilisateur, vous devez paramétrer ce compte avec les outils qu'il fournit. À ce sujet, rapportez-vous aux documents d'aide relatifs à chacune de vos applications concernées. | + | * **sudo -E** préserve l'environnement du [[:bash|shell]] depuis lequel la commande est lancée |
+ | * **sudo -u foo** lance la commande en tant que l'utilisateur foo | ||
+ | * **sudo -g bar** lance la commande avec le groupe bar spécifié (le groupe spécifié est le groupe primaire de l'utilisateur cible indiqué dans /etc/passwd) | ||
+ | * ** sudo -i -u toto ** permet de se connecter en tant que l'utilisateur toto (ne pas utiliser ces options pour root) | ||
===== À lire aussi ===== | ===== À lire aussi ===== | ||
- | * [[:sudo-annexe|Annexe de cette page]] | + | * [[elevation_privileges]] |
- | * [[:tutoriel:comment_eviter_root_quand_c_est_possible|Éviter de lancer une commande en tant qu'administrateur lorsque c'est possible]] | + | * [[elevation_privileges_avances]] |
* **(en) [[http://www.sudo.ws|Site officiel du projet "sudo"]]** | * **(en) [[http://www.sudo.ws|Site officiel du projet "sudo"]]** | ||
* **(en)** [[http://www.sudo.ws/sudo/sudoers.man.html|Sudoers Manual]] | * **(en)** [[http://www.sudo.ws/sudo/sudoers.man.html|Sudoers Manual]] | ||
* **(en)** [[https://help.ubuntu.com/community/RootSudo|RootSudo dans l'Aide d'Ubuntu]] | * **(en)** [[https://help.ubuntu.com/community/RootSudo|RootSudo dans l'Aide d'Ubuntu]] | ||
- | * **(fr)** [[wpfr>Polkit|Polkit (anciennement PolicyKit)]], une autre méthode de gestion flexible des privilèges utilisateurs. | + | * **(fr)** [[wpfr>Polkit|Polkit (anciennement PolicyKit)]], [[:polkit]], une méthode de gestion flexible et sécurisée des privilèges utilisateurs. |
----- | ----- | ||
- | //Contributeurs : [[:utilisateurs:AlexandreP]], [[:utilisateurs:Chatalors]], [[:utilisateurs:Damocles]], [[:utilisateurs:Ju]], // \\ | + | //Contributeurs : [[:utilisateurs:AlexandreP]], [[:utilisateurs:Chatalors]], [[:utilisateurs:Damocles]], [[:utilisateurs:Ju]], [[:utilisateurs:eagle08]], [[:utilisateurs:roschan]] |
- | //Autres contributeurs : [[:utilisateurs:eagle08]]// : formatage du texte pour améliorer la lisibilité à l'écran. | + | , ...// |