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
sudoers [Le 31/10/2012, 15:09]
160.53.250.119 [Redémarer en mode recovery]
sudoers [Le 12/09/2023, 19:29] (Version actuelle)
Amiralgaby ancienne révision (Le 31/08/2022, 23:58) restaurée
Ligne 1: Ligne 1:
-{{tag>Hardy Lucid Maverick natty precise ​administration sécurité}}+{{tag>Xenial ​administration sécurité}}
 ----- -----
  
 ====== Configuration avancée de l'​utilitaire sudo ====== ====== Configuration avancée de l'​utilitaire sudo ======
  
-**[[:​sudo|L'​utilitaire « sudo »]]**, ​filtrant les tâches d'​administration dans Ubuntu, 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élais ​d'attente avant qu'une ré-authentification soit nécessairel'​endroit où est enregistré le journal d’événements ​et le niveau ​de courtoisie ​de ''​sudo'',​ sont aussi paramétrables.+**[[:​sudo|L'​utilitaire « sudo »]]**, ​par le jeu de paramètres dont il dispose, peut autoriser ou refuser à un utilisateur ou à un groupe d'utilisateur l'exécution de tâches ​privilégiées ​avec ou sans saisie ​d'​un ​mot de passe. ​Cette gestion des droits accordés aux utilisateurs est consignée dans le fichier ///​etc/​**sudoers**//​. Le présent document n'est cependant pas le manuel ​d'utilisation de ce fichier. Son objectif est d'indiquer comment le modifier dans le contexte des distributions Ubuntu, et de donner quelques exemples ​de configuration adaptés à un environnement domestique ou à une PME/PMI.
  
-Le présent document n'a pas pour but de remplacer le manuel ​du fichier ///​etc/​**sudoers**//​. Il vous indique comment modifier ce fichier dans Ubuntu ​et ses variantes, et vous donne quelques trucs et astuces ​de configuration utiles pour votre environnement domestique ou de PME/PMI.+D'autres paramètres,​ destinés aux administrateurs ​de systèmes, concernent également la durée de validité de l'​authentification des utilisateurs,​ la localisation ​du journal des événements ​et le niveau ​de courtoisie ​de ''​sudo''​.
  
 +===== Modification du fichier /​etc/​sudoers =====
  
 +==== /​etc/​sudoers.d/​ ====
 +
 +<note warning>
 +Confer le fichier ///​etc/​sudoers.d/​**README**//​
 +
 +La gestion de ''​sudo''​ est améliorée dans les dernières versions (Debian version 1.7.2). ​
 +C'est à dire pour toutes les versions d'​Ubuntu supportées.
 +</​note>​
 +
 +Tous les fichiers du répertoire **/​etc/​sudoers.d/​** ne finissant pas par ''​~''​ ou ne contenant pas un ''​.''​ sont lus et analysés lorsque l'on utilise la commande ''​sudo''​.
 +
 +Pour modifier le fonctionnement de la commande ''​sudo'',​ l'​administrateur du système ne modifie plus le fichier ///​etc/​**sudoers**//​ mais positionne des fichiers de personnalisation dans le répertoire ///​etc/​**sudoers.d**//​.
 +
 +=== avantages ===
 +
 +vous pouvez définir autant de fichiers que de modifications (voir le §2). Le nom est libre et peut donc faire référence à l'​élément personnalisé. Exemples : **monfichier** , **10-sysctl** , **20-userX** , **30-apt**.
 +
 +  - Vous disposez d'un aperçu des modifications en listant simplement le contenu du répertoire ///​etc/​**sudoers.d**//​.
 +  - l'​administrateur peut annuler à tout moment une autorisation particulière de la commande ''​sudo''​ en supprimant le fichier de personnalisation correspondant. ​
 +  - En supprimant tous les fichiers de personnalisation,​ vous êtes certain de revenir à la configuration par défaut de ''​sudo''​ qui sera restée d'​origine.
 +  - Cette configuration peut se mettre à jour sans perdre vos modifications locales.
 +
 +pour ce faire
 +<code bash>
 +sudo visudo -f /​etc/​sudoers.d/​monfichier
 +</​code>​
 +  ​
 +
 +==== /​etc/​sudoers ====
 +
 +Si il est toujours préférable de privilégier d'​écrire ses modifications locales dans [[#​etcsudoersd|/​etc/​sudoers.d]] il est toujours possible de surcharger directement le fichier /​etc/​sudoers.
  
-===== Modification du fichier /​etc/​sudoers ===== 
 La configuration de ''​sudo''​ est enregistrée dans le fichier de configuration ///​etc/​**sudoers**//​. La configuration de ''​sudo''​ est enregistrée dans le fichier de configuration ///​etc/​**sudoers**//​.
  
-La modification de ce fichier s'​effectue à travers un utilitaire de vérification appelé **visudo**. <code bash> sudo visudo </​code>​.Il effectue une vérification de l'​intégrité du fichier après modification avant de l'​enregistrer. En cas d'​erreur lors de la modification,​ le nouveau fichier n'est pas enregistré,​ ce qui vous évite de vous retrouver dans l'​impossibilité de corriger votre erreur. Enfin, il s'​assure que ce fichier conserve ses droits Unix originaux, ce qui garantit le bon fonctionnement de ''​sudo''​. \\ + 
- la fermeture du fichier // /​etc/​sudoers // ouvert par son outil d'​édition **visudo** la nouvelle configuration est automatiquement chargée.+La modification de ce fichier s'​effectue à travers un utilitaire de vérification appelé **visudo**. <code bash> sudo visudo </​code>​Il effectue une vérification de l'​intégrité du fichier après modification avant de l'​enregistrer. En cas d'​erreur lors de la modification,​ le nouveau fichier n'est pas enregistré,​ ce qui vous évite de vous retrouver dans l'​impossibilité de corriger votre erreur. Enfin, il s'​assure que ce fichier conserve ses droits Unix originaux, ce qui garantit le bon fonctionnement de ''​sudo''​. \\ 
 +À la fermeture du fichier // /​etc/​sudoers // ouvert par son outil d'​édition **visudo**la nouvelle configuration est automatiquement chargée.
 ==== Choisir l'​éditeur utilisé par visudo ==== ==== Choisir l'​éditeur utilisé par visudo ====
 === A chaque fois === === A chaque fois ===
Ligne 24: Ligne 56:
   * **En mode console :** ''​sudo EDITOR=/​usr/​bin/​nano visudo''​ ** ou ** ''​sudo EDITOR=/​usr/​bin/​vim ​ visudo''​   * **En mode console :** ''​sudo EDITOR=/​usr/​bin/​nano visudo''​ ** ou ** ''​sudo EDITOR=/​usr/​bin/​vim ​ visudo''​
 === configurer l'​éditeur par défaut === === configurer l'​éditeur par défaut ===
-pour changer l'​éditeur en ligne de commande, par défaut, il suffit de lancer: +pour changer l'​éditeur en ligne de commande, par défaut, il suffit de lancer : 
-  sudo update-alternatives ​ --config editor+  sudo update-alternatives --config editor
  
-et de sélectionner l'​éditeur de votre choix, dans la liste des [[:​editeur_de_texte#​editeurs_en_ligne_de_commande|éditeurs de texte]] déjà ​installé.+et de sélectionner l'​éditeur de votre choix, dans la liste des [[:​editeur_de_texte#​editeurs_en_ligne_de_commande|éditeurs de texte]] déjà ​installés.
  
 +----
  
 ===== Ajout ou retrait de privilèges à un compte d'​utilisateur ou un groupe d'​utilisateurs ===== ===== Ajout ou retrait de privilèges à un compte d'​utilisateur ou un groupe d'​utilisateurs =====
-À la fin du fichier, ajoutez une ligne d'​instruction telle que la suivante : +À __**la fin du fichier**__, ajoutez une ligne d'​instruction... 
-<​file>​identifiant ALL = commande,​autrecommande +<note important>​En cas de litige entre ligne, ce sera la dernière dans le fichier sudoers qui sera comptée ! 
-%groupe ALL = commande,​!autrecommande</​file>​+Si par exemple , //jérome// fait partie du groupe //paris// et que vous mettez que //jérome// peut executer la commande //ls//, puis que plus loin vous mettez que le groupe //paris// ne peut pas executer la commande //ls//, //jérome// ne pourra pas executer la commande //ls// (du moins pas avec sudo) car la dernière ligne qui le concerne refuse l'​execution de ls ! D'où l'​importance de __**bien situer la ligne que vous souhaitez inclure**__,​ notamment **par rapport aux lignes déjà pré-définies pour les groupes admin et sudo** !</​note>​ 
 + ...telle que la suivante : 
 +<​file>​identifiant ALL = (user) /​chemin/​complet/​commande,/​chemin/​complet/​autrecommande 
 +%groupe ALL = (user) /​chemin/​complet/​commande,!/​chemin/​complet/​autrecommande</​file>​
   * ''​identifiant''​ représente un identifiant utilisateur du système Ubuntu. Un seul identifiant doit être précisé par ligne ;   * ''​identifiant''​ représente un identifiant utilisateur du système Ubuntu. Un seul identifiant doit être précisé par ligne ;
   * ''​%groupe''​ désigne un groupe d'​utilisateurs du système Ubuntu. Le nom du groupe doit donc être précédé d'un symbole de pourcentage (''​%''​). Un seul groupe doit être précisé par ligne ;   * ''​%groupe''​ désigne un groupe d'​utilisateurs du système Ubuntu. Le nom du groupe doit donc être précédé d'un symbole de pourcentage (''​%''​). Un seul groupe doit être précisé par ligne ;
   * ''​ALL''​ désigne la ou les machines dans lesquelles les commandes suivantes sont autorisées ou refusées pour cet utilisateur ou ce groupe d'​utilisateurs. Le mot-clé ''​ALL''​ désigne l'​ensemble des machines de votre parc informatique. Dans le cadre d'une utilisation à domicile, laisser ''​ALL''​ n'est pas un inconvénient. Dans un grand parc d'​entreprise,​ de meilleures stratégies sont à prévoir ;   * ''​ALL''​ désigne la ou les machines dans lesquelles les commandes suivantes sont autorisées ou refusées pour cet utilisateur ou ce groupe d'​utilisateurs. Le mot-clé ''​ALL''​ désigne l'​ensemble des machines de votre parc informatique. Dans le cadre d'une utilisation à domicile, laisser ''​ALL''​ n'est pas un inconvénient. Dans un grand parc d'​entreprise,​ de meilleures stratégies sont à prévoir ;
-  * ''​commande''​ et ''​autrecommande''​ représentent des commandes pouvant être exécutées par l'​utilisateur ou le groupe d'​utilisateurs désigné en début de ligne. +  *  ''​user''​ (entre parenthèses) désigne l'​utilisateur dont on prend les droits (peut valoir ALL pour tous) 
-    * Les commandes précédées d'un point d'​exclamation (''​!''​) sont refusées, alors que celles sans point d'​exclamation sont autorisées ;+  *  ​''​commande''​ et ''​autrecommande''​ représentent des commandes pouvant être exécutées par l'​utilisateur ou le groupe d'​utilisateurs désigné en début de ligne. 
 +    *  Les commandes précédées d'un point d'​exclamation (''​!''​) sont refusées, alors que celles sans point d'​exclamation sont autorisées ;
     * Les commandes multiples sont séparées par une virgule, sans espace ;     * Les commandes multiples sont séparées par une virgule, sans espace ;
     * Les commandes doivent être entrées de manière exacte. Pour cette raison, préférez saisir des chemins absolus vers des commandes plutôt que des chemins relatifs (par exemple, ''/​usr/​sbin/​update-manager''​ plutôt que ''​update-manager''​). Pour connaître le chemin absolu d'une commande ou d'un utilitaire, saisissez dans un terminal ''​which //​commande//''​ (([[man>​which]])),​ ou ''​whereis //​commande//''​ (([[man>​whereis]])) en remplaçant //''​commande''//​ par la commande en question.     * Les commandes doivent être entrées de manière exacte. Pour cette raison, préférez saisir des chemins absolus vers des commandes plutôt que des chemins relatifs (par exemple, ''/​usr/​sbin/​update-manager''​ plutôt que ''​update-manager''​). Pour connaître le chemin absolu d'une commande ou d'un utilitaire, saisissez dans un terminal ''​which //​commande//''​ (([[man>​which]])),​ ou ''​whereis //​commande//''​ (([[man>​whereis]])) en remplaçant //''​commande''//​ par la commande en question.
- 
- 
 ==== Exécuter des tâches d'​administration sans mot de passe ==== ==== Exécuter des tâches d'​administration sans mot de passe ====
 À la fin du fichier, ajoutez une ligne d'​instruction telle que la suivante : À la fin du fichier, ajoutez une ligne d'​instruction telle que la suivante :
-<​file>​identifiant ALL = commande, NOPASSWD: autrecommande +<​file>​identifiant ALL = (ALL) /​chemin/​complet/​commande, NOPASSWD: ​/​chemin/​complet/​autrecommande 
-%groupe ALL = NOPASSWD: commande,​autrecommande</​file>​+%groupe ALL = (ALL) NOPASSWD: ​/​chemin/​complet/​commande,/​chemin/​complet/​autrecommande</​file>​
 Toutes les commandes situées à la droite du mot-clé ''​NOPASSWD:''​ peuvent être exécutées par l'​utilisateur ou le groupe d'​utilisateurs précisé en début d'​instruction. Celles restées à sa gauche sont toujours soumises à l'​authentification par mot de passe. Toutes les commandes situées à la droite du mot-clé ''​NOPASSWD:''​ peuvent être exécutées par l'​utilisateur ou le groupe d'​utilisateurs précisé en début d'​instruction. Celles restées à sa gauche sont toujours soumises à l'​authentification par mot de passe.
  
 Dans cet exemple, //​identifiant//​ doit fournir son mot de passe pour exécuter ''​commande'',​ mais n'a pas à le saisir pour exécuter ''​autrecommande''​. Quand aux membres du groupe //groupe//, ils n'ont pas à saisir leur mot de passe pour exécuter ''​commande''​ ou ''​autrecommande''​. Dans cet exemple, //​identifiant//​ doit fournir son mot de passe pour exécuter ''​commande'',​ mais n'a pas à le saisir pour exécuter ''​autrecommande''​. Quand aux membres du groupe //groupe//, ils n'ont pas à saisir leur mot de passe pour exécuter ''​commande''​ ou ''​autrecommande''​.
 +
 +Attention : il ne faut pas mettre juste la commande, mais tout le chemin vers le fichier. Par exemple il ne faut pas mettre "​ls"​ mais "/​bin/​ls"​.
  
 <note warning>​**Attention aux brèches de sécurité !** \\ Faites //​extrêmement//​ attention lorsque vous autorisez un utilisateur ou un groupe à exécuter une commande sans mot de passe. Ceci pourrait causer des brèches de sécurité si les commandes autorisées sont potentiellement dangereuses.</​note>​ <note warning>​**Attention aux brèches de sécurité !** \\ Faites //​extrêmement//​ attention lorsque vous autorisez un utilisateur ou un groupe à exécuter une commande sans mot de passe. Ceci pourrait causer des brèches de sécurité si les commandes autorisées sont potentiellement dangereuses.</​note>​
  
 <note tip> <note tip>
-Pensez à utiliser newgrp pour basculer votre group actif avant de faire appel à la commande ​autorisé ​par le sudo.\\+Pensez à utiliser newgrp pour basculer votre groupe ​actif avant de faire appel à la commande ​autorisée ​par le sudo.\\
 Voici un petit exemple, changer un code clavier.\\ Voici un petit exemple, changer un code clavier.\\
 Après avoir créé le groupe codeclavier,​ pensez à utiliser un numéro spécial pour éviter les conflits avec les groupes utilisateurs,​ vous ajoutez cette ligne dans le fichier /​etc/​sudoers. Après avoir créé le groupe codeclavier,​ pensez à utiliser un numéro spécial pour éviter les conflits avec les groupes utilisateurs,​ vous ajoutez cette ligne dans le fichier /​etc/​sudoers.
 <code bash> <code bash>
- ​%codeclavier ​   ALL = NOPASSWD: /​bin/​changecode+ ​%codeclavier ​   ALL = (ALL) NOPASSWD: /​bin/​changecode
 </​code>​ </​code>​
-et maintenant le petit script ​ ​évidement ​mis dans /​bin/​code.clavier.sh+et maintenant le petit script ​évidemment ​mis dans /​bin/​code.clavier.sh
 <code bash> <code bash>
 sudo /​bin/​changecode sudo /​bin/​changecode
Ligne 69: Ligne 106:
  ​setkeycodes 0x2b 86  ​setkeycodes 0x2b 86
 </​code>​ </​code>​
-Et miracle, il marche. Si vous ajoutez un lien dans /​etc/​profile.d/,​ il sera exécuté à votre connexion en tout transparence!!!+Et miracle, il marche. Si vous ajoutez un lien dans /​etc/​profile.d/,​ il sera exécuté à votre connexion en toute transparence!!!
 </​note>​ </​note>​
  
-====Exécuter un programme ​avec un autre user====+====Exécuter un programme ​en tant qu'un autre 'user'====
 La commande sudo permet d'​exécuter un programme en tant qu'un autre utilisateur. La commande sudo permet d'​exécuter un programme en tant qu'un autre utilisateur.
 Par exemple, la ligne : Par exemple, la ligne :
-<​file>​foo ​     ALL=(bar) NOPASSWD: program</​file>​+<​file>​foo ​     ALL=(bar) NOPASSWD: ​/​chemin/​complet/​program</​file>​
 permet à foo d'​utiliser program en tant que bar sans qu'on ne lui demande son mot de passe. permet à foo d'​utiliser program en tant que bar sans qu'on ne lui demande son mot de passe.
 +
 +//​**Note**//​ : Après il faut quand même utiliser **sudo** pour le lancement de **program**. Comme ceci :
 +<​file>​sudo program</​file>​
 +
 +----
 +
 ===== Changement d'​options ===== ===== Changement d'​options =====
-==== Augmenter ou réduire le temps de grâce avant que la saisie du mot de passe soit de nouveau ​demandé ​====+ 
 +==== Augmenter ou réduire le temps de grâce avant que la saisie du mot de passe soit de nouveau ​demandée ​====
 Ajoutez l'​option ''​timestamp_timeout=X''​ à la fin de la ligne débutant par ''​Defaults''​. La valeur ''​X''​ doit être remplacée par la durée, en minutes, durant laquelle le mot de passe n'a pas à être fourni pour effectuer des actions d'​administration dans le terminal ou pseudo-terminal courant. La valeur ''​0''​ désactive ce temps de grâce : un mot de passe doit être fourni à chaque action d'​administration. Ajoutez l'​option ''​timestamp_timeout=X''​ à la fin de la ligne débutant par ''​Defaults''​. La valeur ''​X''​ doit être remplacée par la durée, en minutes, durant laquelle le mot de passe n'a pas à être fourni pour effectuer des actions d'​administration dans le terminal ou pseudo-terminal courant. La valeur ''​0''​ désactive ce temps de grâce : un mot de passe doit être fourni à chaque action d'​administration.
 <​file>​Defaults env_reset</​file>​ <​file>​Defaults env_reset</​file>​
Ligne 86: Ligne 130:
  
 ==== Afficher des astérisques lors de la saisie du mot de passe ==== ==== Afficher des astérisques lors de la saisie du mot de passe ====
 +
 +{{etoiles_sudo.png?​600nolink}}
 +
 Ajoutez l'​option ''​pwfeedback''​ à la fin de la ligne débutant par ''​Defaults''​. Ajoutez l'​option ''​pwfeedback''​ à la fin de la ligne débutant par ''​Defaults''​.
 <​file>​Defaults env_reset</​file>​ <​file>​Defaults env_reset</​file>​
 devient devient
 <​file>​Defaults env_reset,​pwfeedback</​file>​ <​file>​Defaults env_reset,​pwfeedback</​file>​
 +
 +{{visudo_etoiles.png?​600nolink}}
 +
 +==== Changer le message d'​erreur de mauvais mot de passe ====
 +Ajoutez l'​option badpass_message="​texte à afficher"​ à la fin de la ligne débutant par "​Defaults"​.
 +<​file>​Defaults env_reset</​file>​
 +devient
 +<​file>​Defaults env_reset,​badpass_message="​texte à afficher"</​file>​
  
 ==== Des insultes en cas d'​erreur de mot de passe ==== ==== Des insultes en cas d'​erreur de mot de passe ====
Ligne 97: Ligne 152:
 <​file>​Defaults env_reset,​insults</​file>​ <​file>​Defaults env_reset,​insults</​file>​
  
 +----
  
 ===== Réparer un fichier erroné ===== ===== Réparer un fichier erroné =====
  
-Si, en tentant d’exécuter une commande sudo, vous obtenez une erreur comme ci dessous, c'est que votre fichier sudoers est corrompu.+Si, en tentant d’exécuter une commande sudo, vous obtenez une erreur comme ci-dessous, c'est que votre fichier sudoers est corrompu.
 Comme il est corrompu, vous ne pouvez plus exécuter sudo, et donc plus modifier le fichier ... cercle vicieux Comme il est corrompu, vous ne pouvez plus exécuter sudo, et donc plus modifier le fichier ... cercle vicieux
  
   toto@fixe:​~$ sudo   toto@fixe:​~$ sudo
   >>>​ sudoers file: syntax error, line 0 <<<​   >>>​ sudoers file: syntax error, line 0 <<<​
-  ​ + 
-Voici comment faire (testé et copié ​de http://​www.psychocats.net/​ubuntu/​fixsudo)+Une solution à tenter est de lancer la commande : 
 +<​file>​pkexec visudo</​file>​ 
 + 
 +<​note>​Ou bien d'​utiliser [[https://​www.psychocats.net/​ubuntu/​fixsudo|la solution suivante]]((source http://​askubuntu.com/​questions/​73864/​how-to-modify-a-invalid-etc-sudoers-file-it-throws-out-an-error-and-not-allowi)).</​note>​
   ​   ​
 ==== Redémarrer en mode recovery ==== ==== Redémarrer en mode recovery ====
-{{:​tutoriel:​sudo1.jpg?​200}}+{{:​tutoriel:​sudo1.jpg?​nolink600}}
  
 ==== Choisir l'​option "​root"​ ==== ==== Choisir l'​option "​root"​ ====
-{{:​tutoriel:​sudo1.jpg?200}}+{{:​tutoriel:​sudo2.jpg?nolink600}}
  
 ==== Remonter les disques en écriture ==== ==== Remonter les disques en écriture ====
-  mount -o rw,remount /+  mount -o remount,rw /
   ​   ​
-==== Remonter les disques en écriture ​====+==== Editer / corriger le fichier '​sudoers'  ​====
 Faire les opérations souhaitées comme éditer le fichier à la main : Faire les opérations souhaitées comme éditer le fichier à la main :
  
-      ​sudo cp /​etc/​sudoers /​etc/​sudoers.backup +      cp /​etc/​sudoers /​etc/​sudoers.backup 
-      ​sudo nano /​etc/​sudoers+      nano /​etc/​sudoers
       ​       ​
-Voir http://​www.psychocats.net/​ubuntu/​fixsudo pour d'​autres possibilités.+Voir [[https://​www.psychocats.net/​ubuntu/​fixsudo|ici]] ​pour d'​autres possibilités.
  
 ===== Aller plus loin... ===== ===== Aller plus loin... =====
 Consultez la page de manuel officiel du fichier ///​etc/​**sudoers**//​ : Consultez la page de manuel officiel du fichier ///​etc/​**sudoers**//​ :
   * En ligne : [[http://​www.sudo.ws/​sudo/​sudoers.man.html|Sudoers Manual]] ;   * En ligne : [[http://​www.sudo.ws/​sudo/​sudoers.man.html|Sudoers Manual]] ;
-  * Copie locale : ''​man sudoers''​ +  * Copie locale : ''​man sudoers''​ Ce document regorge d'​options supplémentaires et d'​exemples pour personnaliser grandement le comportement de ''​sudo''​. 
-Ce document regorge d'​options supplémentaires et d'​exemples pour personnaliser grandement le comportement de ''​sudo''​. +  * **(fr)** [[http://​guide.andesi.org/​html/​ksudo.html|Comment donner certains droits root à un utilisateur (Sudo)]] 
------+-------- 
 + 
  • sudoers.1351692576.txt.gz
  • Dernière modification: Le 31/10/2012, 15:09
  • par 160.53.250.119