Onde estão armazenados os insultos de sudo?

221

Para quem gosta de humor, sudo pode ser configurado para imprimir uma frase aleatória mais ou menos insultante ou engraçada em vez do neutro Sorry, try again. adicionando a linha abaixo a /etc/sudoers (usando o comando sudo visudo , não editando manualmente!):

Defaults insults

Aqui estão alguns exemplos:

[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!

Agora, apenas por diversão, eu gostaria de ler todos eles, mas digitar senhas erradas o dia todo não é o melhor método (atraso após cada tentativa, apenas 2 mensagens por 3 tentativas, abortar após 3 tentativas, .. .

Então ... onde estão esses insultos realmente armazenados? Qualquer arquivo de texto simples que eu possa ler diretamente? Ou strings codificadas no código-fonte?

Como posso obter uma lista de todas as mensagens% insulto sudo ?

    
por Byte Commander 15.10.2016 / 20:25

5 respostas

167

Eles estão no arquivo binário

/usr/lib/sudo/sudoers.so

(encontrado por: find /usr/lib/sudo -type f | xargs grep "fallen in the water" )

Se você ativar os downloads de origem e fizer

apt source sudo

Você pode encontrar os arquivos de insultos no diretório de origem em

plugins/sudoers

Os arquivos são

ins_2001.h
ins_classic.h
ins_csops.h
ins_goons.h
insults.h

Exemplo de como esses arquivos se parecem:

#ifndef SUDOERS_INS_GOONS_H
#define SUDOERS_INS_GOONS_H

/*
 * Insults from the "Goon Show."
 */

    "You silly, twisted boy you.",
    "He has fallen in the water!",
    "We'll all be murdered in our beds!",
    "You can't come in. Our tiger has got flu",

e assim por diante ... eles são bastante legíveis.

    
por Zanna 15.10.2016 / 20:34
73

com

dpkg -L sudo | xargs grep dumber

podemos pesquisar quais arquivos do pacote sudo contêm a palavra dumber .

A única correspondência está no arquivo /usr/lib/sudo/sudoers.so . Este é um arquivo binário, então usamos o comando strings para obter apenas coisas que parecem ser legíveis por humanos. Como é muito nós canalizamos o resultado em less :

strings /usr/lib/sudo/sudoers.so | less

Em less , podemos usar

/dumber

para pesquisar novamente a palavra "dumber". Isso nos leva diretamente aos insultos. Role para cima e para baixo com as teclas do cursor e saia com q

    
por Florian Diesch 15.10.2016 / 20:55
69

Lista de todos os insultos

Quando olhamos todos os insultos, descobrimos um detalhe interessante: dizer que o brócolis é politicamente correto, mas dizer que Burrito não é. Todos os insultos estão listados abaixo.

ins_2001.h (insultos à Odisséia no Espaço em 2001):

.
    /*
     * HAL insults (paraphrased) from 2001.
     */

    "Just what do you think you're doing Dave?",
    "It can only be attributed to human error.",
    "That's something I cannot allow to happen.",
    "My mind is going. I can feel it.",
    "Sorry about this, I know it's a bit silly.",
    "Take a stress pill and think things over.",
    "This mission is too important for me to allow you to jeopardize it.",
    "I feel much better now.",

ins_classic.h (Original Sudo 8 insultos):

    /*
     * Insults from the original sudo(8).
     */

    "Wrong!  You cheating scum!",
#ifdef PC_INSULTS
    "And you call yourself a Rocket Scientist!",
#else
    "No soap, honkie-lips.",
#endif
    "Where did you learn to type?",
    "Are you on drugs?",
    "My pet ferret can type better than you!",
    "You type like i drive.",
    "Do you think like you type?",
    "Your mind just hasn't been the same since the electro-shock, has it?",

ins_csops.h (CSOps insultos):

    /*
     * CSOps insults (may be site dependent).
     */

    "Maybe if you used more than just two fingers...",
    "BOB says:  You seem to have forgotten your passwd, enter another!",
    "stty: unknown mode: doofus",
    "I can't hear you -- I'm using the scrambler.",
    "The more you drive -- the dumber you get.",
#ifdef PC_INSULTS
    "Listen, broccoli brains, I don't have time to listen to this trash.",
#else
    "Listen, burrito brains, I don't have time to listen to this trash.",
#endif
    "I've seen penguins that can type better than that.",
    "Have you considered trying to match wits with a rutabaga?",
    "You speak an infinite deal of nothing",

ins_goons.h (insultos do Goon Show):

.
    /*
     * Insults from the "Goon Show."
     */

    "You silly, twisted boy you.",
    "He has fallen in the water!",
    "We'll all be murdered in our beds!",
    "You can't come in. Our tiger has got flu",
    "I don't wish to know that.",
    "What, what, what, what, what, what, what, what, what, what?",
    "You can't get the wood, you know.",
    "You'll starve!",
    "... and it used to be so popular...",
    "Pauses for audience applause, not a sausage",
    "Hold it up to the light --- not a brain in sight!",
    "Have a gorilla...",
    "There must be cure for it!",
    "There's a lot of it about, you know.",
    "You do that again and see what happens...",
    "Ying Tong Iddle I Po",
    "Harm can come to a young lad like that!",
    "And with that remarks folks, the case of the Crown vs yourself was proven.",
    "Speak English you fool --- there are no subtitles in this scene.",
    "You gotta go owwwww!",
    "I have been called worse.",
    "It's only your word against mine.",
    "I think ... err ... I think ... I think I'll go home",

O arquivo insults.h contém instruções do compilador sobre quais dos insultos acima devem ser incluídos no kernel compilado. De fato, você poderia criar seu próprio arquivo de insultos, adicionar o nome a insults.he recompilar para ter mensagens como "O que, você é um usuário do ArchLinux?" ou "Isto não é o Windows, onde os erros são comuns!", etc.

Observe o #ifdef PC_INSULTS em alguns dos arquivos de insulto. Isso não significa "se você tem um computador pessoal" significa "se você quer ser politicamente correto".

    
por WinEunuuchs2Unix 15.10.2016 / 22:22
11

As respostas acima são ótimas para pesquisas off-line. Mas estamos online. Então abra a pesquisa de código Debian e experimente um dos insultos por chx 19.10.2016 / 01:49

7

Para adicionar as outras respostas, os insultos parecem estar na seção .rodata de sudoers.so. Você pode usar objcopy para restringir um pouco a saída, embora ainda haja muitos falsos positivos:

$ objcopy /usr/lib/sudo/sudoers.so /dev/null --dump-section .rodata=/dev/stdout | strings | head
/build/sudo-g3ghsu/sudo-1.8.16/plugins/sudoers/auth/sudo_auth.c
invalid authentication methods
Invalid authentication methods compiled into sudo!  You may not mix standalone and non-standalone authentication.
There are no authentication methods compiled into sudo!  If you want to turn off authentication, use the --disable-authentication configure option.
Unable to initialize authentication methods.
Just what do you think you're doing Dave?
It can only be attributed to human error.
That's something I cannot allow to happen.
My mind is going. I can feel it.
Sorry about this, I know it's a bit silly.
$ 
    
por Digital Trauma 18.10.2016 / 01:48

Tags