Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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:51]
Roschan
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 39: 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 50: Ligne 60:
  
 Pour assigner le rôle d'​administrateur à un autre compte d'​utilisateur : 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"​).+  * **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  [[:​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.   * **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.
Ligne 66: Ligne 76:
 ===== Remarques sur la sécurité ===== ===== 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 :
  
-<note help>​--------------+  * 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.
  
-cette page doit fusionner elle-même avec https://doc.ubuntu-fr.org/​sudo-annexe+  * 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.
  
-le but étant de faire une page "​conforme au template"​ pour sudo \\ +  * 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.
-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_avances un tuto avancé avec tout le bullshit obsolète sur gkmachin+
  
-------+  * 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''​.
  
-Plan provisoire :+==== Alternatives à sudo ====
  
-  ​principe de fonctionnement +  ​* [[: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 : 
-  ​utilisation +    * [[:gnome-packagekit|GNOME Paquets]] 
-  configuration +    ​* [[:gnome-software|GNOME Logiciels]] 
-    - ajouter des utilisateurs +    ​* [[:plasma-discover|Plasma Discover]] 
-    - sudoers +    * [[:​Nautilus]] 
-  - remarques sur la sécurité +    * [[:Kate]] 
-  - utilisation avancée +    * Les paramètres système (concernant l'​ajout d'​utilisateur par exemple) 
-  - voir aussi+    * etc.
  
---------------------</​note>​+  * ''​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.
  
-<del>+==== Avantages de sudo ====
  
-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: +Le fonctionnement ​de ''​sudo'​' peut sembler complexe en comparaison ​à l'utilisation directe ​d'un compte ​''​root'', ​qu'Ubuntu ​choisi de ne pas activer par défaut.
-  * 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 ​le droit d'​effectuer cette tâche. Dans le cas contraire, il bloque la tâche.+
  
- +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 : 
-===== Préalables ===== +  * L'​installateur d'​Ubuntu ​est ainsi plus concis
- +  * Les administrateurs n'ont pas à se souvenir d'un mot de passe supplémentaire. 
-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>>​​). +  * 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 ​;
- +
-Vous disposez d'un compte d'​administrateur lorsque : +
-  * 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''​. +
- +
- +
-===== Utilisation ===== +
-<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]]**//​ +
- +
-</​del>​ +
- +
-==== Les avantages de sudo ==== +
- +
-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 : +
-  * L'​installateur d'​Ubuntu ​doit poser moins de questionsCeci 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 ; +
-  * 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 ; +
-  * 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 ​;+
   * ''​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êmeet 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 214: 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]],​ [[:​utilisateurs:​eagle08]],​ [[:​utilisateurs:​roschan]] //​Contributeurs : [[:​utilisateurs:​AlexandreP]],​ [[:​utilisateurs:​Chatalors]],​ [[:​utilisateurs:​Damocles]],​ [[:​utilisateurs:​Ju]],​ [[:​utilisateurs:​eagle08]],​ [[:​utilisateurs:​roschan]]
 , ...// , ...//
 +
  • utilisateurs/roschan/sudo.1507416665.txt.gz
  • Dernière modification: Le 08/10/2017, 00:51
  • par Roschan