Contenu | Rechercher | Menus

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
sudo [Le 20/06/2014, 16:52]
moissan [À lire aussi]
sudo [Le 17/10/2017, 03:58] (Version actuelle)
moko138 [Lancer un logiciel graphique en super-utilisateur] 1) remplacé gedit par xdg-open. 2) mentionné Lubuntu.
Ligne 1: Ligne 1:
-{{tag>Lucid Precise Quantal Raring ​administration sécurité}}+{{tag>​administration sécurité ​droits sudo}}
 ------ ------
  
 +====== Droits de super utilisateur ======
  
-====== Sudo : effectuez des tâches administratives ====== +Les actions que l'on peut être amené à effectuer sur son système ​relèvent ​de deux types: l'​utilisation courante (lire ses mails, naviguer sur Internet, etc), et l'​administration (installation ​de logiciels ​et configuration avancée). L'​utilisation courante ne demande pas de privilèges particuliers. \\ Par contre pour les tâches ​d'administration,​ qui pourraient endommager le système en cas d'erreurdes droits spécifiques sont requis: les droits ​de **super ​utilisateur**.
-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 : création de comptes ​d'utilisateursinstallation ​de programmes, paramétrage du matériel, etc. L'​administrateur est une personne ayant un compte d'utilisateur ​avec des privilèges supplémentaires.+
  
-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: +<note important>​Cette page est volontairement simplifiée à l'extrême afin de la rendre accessible et que les informations essentielles soient faciles ​à trouver\\ En conséquence,​ elle ne couvre pas tous les cas de figureEn cas de doute et pour creuser ​le sujetse reporter au tutoriel << [[:​tutoriel:​effectuer_des_taches_en_super_utilisateur|Effectuer des tâches en super utilisateur]] >>.</​note>​
-  * 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.+
  
-===== Préalables ​===== +===== Pré-requis:​ comprendre l'​action que vous allez effectuer ​=====
-Pour effectuer des tâches administratives à travers l'​utilitaire ''​sudo'',​ votre compte d'​utilisateur doit être promu au rôle d'​administrateur.+
  
-Vous disposez ​d'un compte d'​administrateur lorsque : +Toute tâche ​d'administration est sensible, et il n'​est ​pas forcément facile ​de revenir en arrièreIl est vivement conseillé de chercher à comprendre les [[:​terminal|lignes de commande]] que vous exécuterezpar exemple en utilisant //​[[:​man|man]]//,​ car en cas d'erreur, la réinstallation complète du système ​est parfois l'unique option
-  * votre compte d'utilisateur ​est celui qui a été créé au moment ​de l'​installation d'​UbuntuPar 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''​. 
  
 +===== Lancer un logiciel graphique en super-utilisateur =====
 +La plupart des logiciels graphiques qui ont besoin d'​être exécutés avec les privilèges du super-utilisateur vous demanderont votre mot de passe lorsqu'​il y en aura besoin. Cependant, il peut arriver que vous souhaitiez exécuter en super-utilisateur un logiciel qui peut aussi fonctionner sans. 
  
 +Dans le cas général, ce n'est pas une bonne pratique, il est toujours préférable de rechercher comment atteindre le même but via un utilitaire en ligne de commande. Si toutefois vous n'avez pas d'​autre alternative,​ notez que dans ce cas, l'​usage du **''​sudo''​** (présenté dans la partie dédiée aux lignes de commande) n'est pas approprié: il y a un risque d'​écrasement de votre configuration courante. Il est donc nettement préférable d'​utiliser l'​utilitaire approprié à votre système((Depuis [[:​trusty|Ubuntu 14.04]], ces utilitaires ne sont plus présents par défaut, il faut les [[:​tutoriel:​comment_installer_un_paquet|installer]]. Par exemple pour gksudo: [[apt>​gksu]])),​ les plus répandus étant **''​gksudo''​** pour [[:​Ubuntu]]/​[[:​Xubuntu]]/​[[:​Lubuntu]],​ ou **''​kdesudo''​** pour [[:​Kubuntu]].
 +Par exemple, pour [[tutoriel:​comment_modifier_un_fichier|modifier un fichier]] avec votre éditeur de texte habituel dans Ubuntu/​Xubuntu/​Lubuntu (jusqu'​à la [[:​zesty|17.04]]):​
 +<​code>​gksudo xdg-open mon-fichier</​code>​
 +et dans Kubuntu (jusqu'​à la [[:​zesty|17.04]]) :
 +<​code>​kdesudo xdg-open mon-fichier</​code>​
  
-===== Utilisation =====+Si vous utilisez une version qui utilise [[:​wayland|wayland]] comme ce sera le cas par défaut pour Ubuntu [[:​artful|17.10]] et suivantes, ​ reportez-vous à la page qui lui est consacrée. Vous pouvez également consulter le tutoriel sur le [[:​tutoriel:​effectuer_des_taches_en_super_utilisateur|super utilisateur]]. ​
  
-==== Exécuter une application graphique (Ubuntu, Xubuntu) ​==== +===== Exécuter une ligne de commande en super utilisateur =====
-  - 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>​gksudo "nom du programme"</​code>​Utilisez les guillemets anglais pour entourer le nom de votre programme, particulièrement si celui-ci utilise plusieurs arguments. \\ {{  :​sudo-gksudo1.png?​300 ​ |Saisissez l'​instruction sous la forme « gksudo "nom du programme"​ » (ex : « gksudo "​update-manager"​ »). }} \\  +
-  - 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) ==== +Dans l'​immense majorité des cas où il vous sera demandé d'​effectuer ​une action en ligne de commande avec les droits ​d'administration,​ il vous suffit d'ajouter ​le mot clé ''​**sudo**''​ au début de votre ligne de commande. 
-  - Appuyez sur les touches [ALT]+[F2] ​de votre clavier pour ouvrir une invite ​d'exécution de programme ; \\ \\  +Exemple typique, pour [[tutoriel:comment_modifier_un_fichier|modifier un fichier]] avec //​[[:​nano|nano]]//:​ 
-  - 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"​ »). }} \\ +<​code>​sudo nano /​chemin/​vers/​mon/​fichier</​code>​ 
-  - 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 ​*votremot de passe.}} \\ +Après ​la saisie ​d'une ligne de commande commençant par **''sudo''​**, il vous sera demandé ​de taper votre mot de passe, ​mais les caractères ne s'​afficheront pas à l'écran et il n'y aura pas non plus de petites étoiles ''​*''​ce qui est normal. Tapez tout de même votre mot de passe et validez.
-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'authentificationles 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 ou une commande en console (toutes variantes) ​==== +===== Pour approfondir =====
-  - 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.+
  
 +{{topic>: ​ sudo}}
  
-==== 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>​ +//​Contributeurs : [[:​utilisateurs:​aldian]]//
- +
- +
- +
-===== 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 ==== +
-Les avantages de l'​emploi de ''​sudo'',​ par opposition à l'​emploi direct d'un unique compte superutilisateur (''​root''​),​ 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 superutilisateur 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 ;​ +
-  * 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''​ ;​ +
-  * ''​sudo''​ peut être configuré avec une politique bien plus raffinée. +
- +
- +
-==== « sudo » n'​est-il pas moins sécurisé que « su root » ? ==== +
-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 superutilisateur. +
- +
-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 » ==== +
-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 superutilisateur (''​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>​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>​root@ordinateur:​~#​ exit</​code>​ ou ''​Ctrl+D''​ +
- +
- +
-==== 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 : <​code>​utilisateur@ordinateur:​~$ sudo echo 2 > /​proc/​acpi/​thermal_zone/​ATF0/​polling_frequency</​code>​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 : <​code>​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. +
- +
- +
-===== Les comptes superutilisateurs d'​applications particulières ===== +
-Certains programmes ou services nécessitent des comptes superutilisateurs. C'est généralement le cas avec des systèmes de bases de données (comme MySQL). Prenez note que ce compte superutilisateur est indépendant de celui du système d'​exploitation : il est unique au programme ou service en particulier. +
-Si un tel programme ou service nécessite un compte superutilisateur,​ 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. +
- +
- +
- +
-===== À lire aussi ===== +
-  * [[:​sudo-annexe|Annexe de cette page]] +
-  * [[:​tutoriel:​comment_eviter_root_quand_c_est_possible|Éviter de lancer une commande en tant qu'​administrateur lorsque c'est possible]] +
-  * [[http://​elban.fr/​mot-de-passe-root-perdu/​|Mot de passe root perdu : comment faire ?]] (fr) [Lien mort ou inactif le 19/​5/​2014] +
-  * **[[http://​www.sudo.ws|Site officiel du projet "​sudo"​]] (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) +
-  * [[wp>​PolicyKit]] (en), une autre méthode de gestion flexible des privilèges utilisateurs +
- +
------ +
-//​Contributeurs : [[:​utilisateurs:​AlexandreP]],​ [[:​utilisateurs:​Chatalors]],​ [[:​utilisateurs:​Damocles]],​ [[:​utilisateurs:​Ju]]// \\+


Le contenu de ce wiki est sous licence : CC BY-SA v3.0