Pour ceux qui aiment l’humour, sudo
on peut configurer pour imprimer une phrase aléatoire plus ou moins insultante ou amusante au lieu de la neutre Sorry, try again.
en ajoutant la ligne ci-dessous à /etc/sudoers
(en utilisant la commande sudo visudo
, sans le modifier manuellement!):
Defaults insults
Voici quelques exemples:
[sudo] password for bytecommander:
The more you drive -- the dumber you get.
[sudo] password for bytecommander:
I've seen penguins that can type better than that.
[sudo] password for bytecommander:
This mission is too important for me to allow you to jeopardize it.
[sudo] password for bytecommander:
He has fallen in the water!
[sudo] password for bytecommander:
Hold it up to the light --- not a brain in sight!
Maintenant, juste pour le plaisir, j'aimerais les lire tous, mais la saisie d’un mot de passe incorrect toute la journée n’est pas vraiment la meilleure méthode (délai après chaque tentative, seulement 2 messages sur 3 tentatives, abandon après 3 tentatives, ...).
Alors ... où ces injures sont-elles réellement stockées? Un fichier texte brut que je peux lire directement? Ou des chaînes codées en dur dans le code source?
Comment puis-je obtenir une liste de tous les sudo
messages d'insultes disponibles ?
strings /usr/lib/sudo/sudoers.so
strings
je ne vous dirai pas si toutes les insultes sont égales. La lecture de la source réelle pourrait révéler si certains critères influencent le choix de l'injure.Avec
nous pouvons rechercher quels fichiers du paquet
sudo
contiennent le motdumber
.La seule correspondance est dans le fichier
/usr/lib/sudo/sudoers.so
.strings
Comme il s’agit d’un fichier binaire, nous utilisons cette commande pour obtenir uniquement les éléments qui semblent lisibles par l’homme. Comme c'est beaucoup, nous transmettons le résultat dansless
:En
less
nous pouvons utiliserpour rechercher à nouveau le mot "dumber". Cela nous mène directement aux insultes. Faites défiler vers le haut et le bas avec les touches du curseur et quittez avecq
la source
strings -n10
pour réduire les faux positifs. Voir aussi la réponse de @ DigitalTrauma qui utilise objcopy pour n’alimenter que la.rodata
sectionstrings
, ce qui réduit encore le bruit.Liste de toutes les insultes
Lorsque nous examinons toutes les insultes, nous découvrons un détail intéressant: dire que le brocoli est politiquement correct, mais que dire Burrito ne l’est pas. Toutes les insultes sont énumérées ci-dessous.
ins_2001.h
(Insultes de l'Odyssée de l'espace 2001):ins_classic.h
(Sudo 8 insultes d'origine):ins_csops.h
(Insultes CSOps):ins_goons.h
(Goon Show insultes):Le fichier
insults.h
contient les instructions du compilateur sur les insultes ci-dessus à inclure dans le noyau compilé. En effet, vous pouvez créer votre propre fichier insultes, ajouter le nom à insults.h et recompiler pour obtenir des messages du type "Quoi, êtes-vous un utilisateur ArchLinux?" ou "Ce n'est pas Windows où les erreurs sont banales!", etc.Notez le
#ifdef PC_INSULTS
dans certains des fichiers insultes. Cela ne signifie pas "si vous avez un ordinateur personnel" mais "si vous voulez être politiquement correct".la source
Les réponses ci-dessus sont idéales pour la recherche hors ligne. Mais nous sommes en ligne. Alors ouvrez la recherche de code Debian et essayez l’une des insultes ici . Il vous dit instantanément que c'est dans
sudo_1.8.12-1/plugins/sudoers/ins_csops.h
. Cela a l’avantage de le trouver partout, qu’il s’agisse d’un fichier de configuration à déployer/etc
ou autre. Et puisqu'il s'agit d'un fichier .h, il est visible qu'il se trouve dans le source et que vous ne pouvez pas le modifier.la source
Pour ajouter aux autres réponses, les insultes semblent être dans la
.rodata
section sudoers.so. Vous pouvez utiliserobjcopy
pour limiter quelque peu la sortie, même s’il restera beaucoup de faux positifs:la source
strings
au lieu deobjcopy
? :)objcopy | strings
, d’analyser uniquement la.rodata
section du segment de texte. Ce qui réduit les faux positifs est de plus en plus la longueur de chaîne minimale de la valeur par défaut 4 à quelque chose comme 10:strings -n10
. Et pipe dansless
, pashead
, IMO. Toutes les insultes semblent être contiguës, BTW.strings
a déjà été utilisé.