| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| sudoers [Le 25/06/2018, 00:28] – [Modification du fichier /etc/sudoers] 77.111.245.11 | sudoers [Le 12/09/2023, 19:29] (Version actuelle) – ancienne révision (Le 31/08/2022, 23:58) restaurée Amiralgaby |
|---|
| |
| ===== Modification du fichier /etc/sudoers ===== | ===== Modification du fichier /etc/sudoers ===== |
| La configuration de ''sudo'' est enregistrée dans le fichier de configuration ///etc/**sudoers**//. | |
| |
| ATTENTION ! | ==== /etc/sudoers.d/ ==== |
| Cette documentation devrait être corrigée. | |
| Confère le fichier /etc/sudoers.d/README, pour une meilleur méthodologie, il est préférable de ne pas modifier le fichier /etc/sudoers et de privilégier la création de fichiers de personnalisation dans le répertoire /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. |
| | |
| | La configuration de ''sudo'' est enregistrée dans le fichier de configuration ///etc/**sudoers**//. |
| |
| |
| === 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és. | 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. |
| * ''%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 ; |
| * //user// (entre parenthèses) désigne l'utilisateur dont on prend les droits (peut valoir ALL pour tous) | * ''user'' (entre parenthèses) désigne l'utilisateur dont on prend les droits (peut valoir ALL pour tous) |
| * ''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. | * ''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 précédées d'un point d'exclamation (''!'') sont refusées, alors que celles sans point d'exclamation sont autorisées ; |
| ==== 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 = /chemin/complet/commande, NOPASSWD: /chemin/complet/autrecommande | <file>identifiant ALL = (ALL) /chemin/complet/commande, NOPASSWD: /chemin/complet/autrecommande |
| %groupe ALL = NOPASSWD: /chemin/complet/commande,/chemin/complet/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. |
| |
| 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 évidemment mis dans /bin/code.clavier.sh | et maintenant le petit script évidemment mis dans /bin/code.clavier.sh |
| 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> |
| |
| <file>pkexec visudo</file> | <file>pkexec visudo</file> |
| |
| <note>Ou bien d'utiliser [[http://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> | <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 ==== |
| nano /etc/sudoers | nano /etc/sudoers |
| | |
| Voir [[http://www.psychocats.net/ubuntu/fixsudo|ici]] pour d'autres possibilités. | Voir [[https://www.psychocats.net/ubuntu/fixsudo|ici]] pour d'autres possibilités. |
| |
| ===== Aller plus loin... ===== | ===== Aller plus loin... ===== |