Sudo'nun hakaretleri nerede saklanıyor?


234

Mizah sevenler için, aşağıdaki satırı ekleyerek sudonötr yerine rastgele aşağılayıcı veya komik bir cümle basacak şekilde yapılandırılabilir (komutu kullanarak, elle düzenleme yapmadan!):Sorry, try again./etc/sudoerssudo visudo

Defaults insults

İşte bazı örnekler:

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

Şimdi sadece eğlence için hepsini okumak istiyorum, ama bütün gün yanlış şifreler girmek gerçekten en iyi yöntem değil (her denemeden sonraki gecikme, 3 denemeden sadece 2 mesaj, 3 denemeden sonra iptal, ...).

Peki ... bu hakaretler nerede saklanıyor? Doğrudan okuyabildiğim herhangi bir düz metin dosyası var mı? Veya kaynak kodunda sabit kodlu dizeler?

Mevcut sudohakaret mesajlarının listesini nasıl alabilirim ?

Yanıtlar:


181

Onlar ikili dosyadalar

/usr/lib/sudo/sudoers.so

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

Kaynak indirmeyi etkinleştirirseniz ve

apt source sudo

Hakaret dosyalarını aşağıdaki kaynak dizinde bulabilirsiniz.

plugins/sudoers

Dosyalar

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

Bu dosyaların nasıl göründüğüne örnek:

#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",

ve diğerleri ... oldukça okunabilirler.


24
Şimdi Zanna bize sudoers.so içinde olduklarını söyledi, kaynak kodu yerine dizeleri kullanarak "okuyabilirsin". strings /usr/lib/sudo/sudoers.so
Stéphane

3
@ Stéphane Bu doğru, ancak stringshakaretlerin eşit olup olmadığını size söylemeyeceğim. Asıl kaynağı okumak, belirli kriterlerin hakaret seçimini etkileyip etkilemediğini ortaya çıkarabilir.
kasperd

3
@ Stéphane Plus, çalıştırılabilir bir dizgede çalışan dizgeler sıkıcı sayıda yanlış pozitif üretiyor.
MariusMatutiae


7
Goon Show hakaretlerini görene kadar bunu yapmayacaktım, bu noktada yeterince hızlı
olamadım

77

İle

dpkg -L sudo | xargs grep dumber

paketindeki hangi dosyaların sudokelimesini içerdiğini arayabiliriz dumber.

Tek eşleşme dosyada /usr/lib/sudo/sudoers.so. Bu bir ikili dosyadır, bu yüzden stringskomutu yalnızca insan tarafından okunabilir gibi görünen şeyleri almak için kullanırız . Çok fazla olduğu için sonucu şuraya çekiyoruz less:

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

Gelen lessKullanabileceğimiz

/dumber

"dumber" kelimesini tekrar aramak için. Bu bizi hakarete sokuyor. İmleç tuşlarıyla yukarı ve aşağı kaydırın veq


6
Bu tür soruların cevabını keşfetmek için kolay bir genel tekniği gösterdiği için geliştirildi.
200_success

1
strings -n10Yanlış pozitifleri azaltmak için kullanın . Ayrıca bkz. @ DigitalTrauma'nın sadece .rodatabölümü beslemek için stringsyeniden basmayı kullanan ve yine gürültüyü azaltan cevabı kullanan cevabı .
Peter Cordes

76

Tüm Hakaretlerin Listesi

Bütün hakaretlere baktığımızda ilginç bir haberleşme buluyoruz: Brokoli'nin politik olarak doğru olduğunu söylemek, ama Burrito demek olmadığını söylemek. Bütün hakaretler aşağıda listelenmiştir.

ins_2001.h (2001 Space Odyssey hakaret):

.
    /*
     * 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 (Orjinal Sudo 8 hakaret):

    /*
     * 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 hakaret ediyor):

    /*
     * 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 (Goon Show hakaret):

.
    /*
     * 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",

Bu dosya insults.h, derlenmiş çekirdeğe dahil edilecek yukarıdaki hakaretlerden hangisine derleyici talimatları içerir. Aslında, kendi hakaret dosyanızı oluşturabilir, insults.h dosyasına adı ekleyebilir ve "Ne, bir ArchLinux kullanıcısı mısınız?" veya "Bu, hataların yaygın olduğu Windows değil!" vb.

#ifdef PC_INSULTSHakaret dosyalarının bazılarında dikkat edin . Bu, "kişisel bir bilgisayarınız varsa", "politik olarak doğru olmak istiyorsanız" anlamına gelmez.


47
"Brokoli" nin "börek" den daha politik olarak doğru kabul edildiği hakkında hiçbir fikrim yoktu.
kabarık

9
@fluffy Bunun ulusal diyet olan burrito'ya dahil olan insanlara referans olduğunu varsayıyorum. Şimdi kodu sansürlemediğim için üzgünüm. Sadece PC_INSULT seçeneklerini kullanmalı ve diğer yarısını silmeliydim. Öte yandan Tom Sawyer'da olduğu gibi tarihin sansürünü sevmem ve bunun gibi kitaplar. Bu hakaretler 2004 yılından beri olduğundan, #ifdef bölümlerini silmiş olsam, sansür geçmişinden suçlu olurum.
WinEunuuchs2Unix

7
Şimdi hangi terimleri kullanmamız gerektiği hakkında konuşurken “sansürleme tarihi” hakkında çok fazla endişelenmeyin. 40 yıl önce kullandığım, ırkçı hakaret eden, cinsiyetçi vb. Birçok kelimeyi düşünebilirim. Onlara tarihsel bağlamlarında değinmekten mutluyum ama şükürler olsun ki toplum, bu terimlerin çoğunda zarar gördü ve tanıdı. . Evet, isterseniz siyasi olarak doğru hakkında rant lütfen. Lütfen önce kelimelerin zarar verdiği fakir bir azınlıkta olmayı deneyin.
Michael Durrant,

4
PC doğruluğunun sonu yok. Herhangi bir kelime saldırgan sayılabilir ve brokoli Peru'da PC olmazdı ... Burrito açık bir ırksal bulamaçtır.
Shautieh

17
ABD dışındaki çoğu insan ve muhtemelen ABD’deki bazıları bunu “belirgin bir ırksal bulamaç” olarak görmezler. Bana göre, bu kasıtlı hakaretlerin listesini yazanların (bu özellik adı!) Gerçekte belirli insanlara gerçekten rahatsız edilmeleri umrunda ... ...?!
gül

11

Yukarıdaki cevaplar çevrimdışı arama için mükemmeldir. Ama biz çevrimiçi. Yani açık Debian kod arama ve hakaretler biri birini deneyin burada . Anında içeride olduğunu söyler sudo_1.8.12-1/plugins/sudoers/ins_csops.h. Bu, dağıtılacak bir yapılandırma dosyası ya da her neyse , her yerde bulma avantajına sahiptir /etc. Ve bir .h dosyası olduğundan, kaynakta olduğu ve değiştirebileceğiniz bir şey olmadığı görülüyor.


7

Diğer cevaplara eklemek için hakaretler .rodatasudoers.so bölümünde görünmektedir. objcopyÇok fazla yanlış pozitif olmasına rağmen, çıktıyı bir şekilde sınırlamak için kullanabilirsiniz :

$ 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.
$ 

Çok sayıda yanlış pozitif tolerans gösterebiliyorsanız, neden sadece stringsyerine kullanmıyorsunuz objcopy? :)
Ruslan

@Ruslan: Zaten, objcopy | stringssadece .rodatametin bölümünün bölümünü taramak . Yanlış pozitifleri azaltan, minimum dize uzunluğunu varsayılan 4'ten 10: gibi bir şeye yükseltmektir strings -n10. Ve IMO'ya lessdeğil head. Bütün hakaretler bitişik görünüyor, BTW.
Peter Cordes

Ah, kodu stringsdaha önce kullanmadığımı görmek için kaydırmadım .
Ruslan,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.