Puis-je personnaliser le message sudo «cet incident sera signalé»?


20

Est-il possible, sous Linux ou sur des systèmes BSD, de personnaliser le sudomessage "cet incident sera signalé"? Je suis allé sur man sudoet man sudoerssur une machine Ubuntu 16.04, une machine FreeBSD 10.2, et une machine Fedora 23, et je ne l' ai pas trouvé quelque chose d' utile.

Réponses:


31

Du manuel Sudoers ci-dessous est le seul message que vous êtes autorisé à configurer avec la conf sudo.

badpass_message="Sorry, try again."

Cependant, pour répondre à votre question, vous êtes plus que bienvenus pour compiler votre propre copie de sudo.

Ce serait le message que vous obtenez.


12
Ah, la beauté de l'open source. Vous n'aimez pas quelque chose? Changez-le vous-même!
phyrfox

4
"Change sudo!" mais je ne sais pas comment! "sudo change sudo!" d'accord.
Mehrdad

14

Dans un certain sens, ce message est déjà personnalisable car, comme pour de nombreuses parties de GNU / Linux, il sudoest internationalisé et utilise la gettext prise en charge de la langue native pour rechercher la plupart des chaînes pour les remplacer par une version locale dans une langue différente.

Par exemple, vous pouvez voir le fichier en français ici qui contient des entrées:

msgid "%s is not in the sudoers file.  This incident will be reported.\n"
msgstr "%s n'apparaît pas dans le fichier sudoers. Cet événement sera signalé.\n"

msgid "%s is not allowed to run sudo on %s.  This incident will be reported.\n"
msgstr "%s n'est pas autorisé à exécuter sudo sur %s. Cet événement sera signalé.\n"

Donc, pour changer le message que vous devez spécifier pour quelle langue / locale? et modifiez le fichier NLS approprié. Cependant, l'utilisateur n'utilise peut-être pas de paramètres régionaux, cela n'aura donc aucun effet.


Alternativement, vous pouvez utiliser un éditeur binaire pour remplacer la chaîne dans /usr/libexec/sudo/sudoers.so, où elle se produit, par une chaîne exactement de la même taille et avec le même nombre de %sparamètres. Comme cela ne correspondra plus à la gettexttraduction, cela s'appliquera à tous les paramètres régionaux. Par exemple

sed < /usr/libexec/sudo/sudoers.so 's/This incident will be reported/This incident WILL BE REPORTED/' >/tmp/sudoers.so
cmp -l /usr/libexec/sudo/sudoers.so /tmp/sudoers.so

Utilisez cmppour vous assurer que vous n'avez pas corrompu le fichier.


Nous pouvons sûrement en faire une longueur différente en recompilant sudo?
gerrit

@gerrit oui, la meilleure solution serait d'éditer la source et de recompiler le programme.
meuh

3
Vous pouvez raccourcir le message en remplissant de caractères nuls, car C utilise des chaînes terminées par nul.
Nate Eldredge

@NateEldredge Bon point.
meuh
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.