เก็บคำด่าของ sudo ไว้ที่ไหน


234

สำหรับผู้ที่ชื่นชอบอารมณ์ขันsudoสามารถกำหนดค่าให้พิมพ์วลีที่ดูถูกเหยียดหยามหรือตลกแทนที่จะเป็นประโยคที่เป็นกลางSorry, try again.โดยเพิ่มบรรทัดด้านล่างลงใน/etc/sudoers(โดยใช้คำสั่งsudo visudoไม่ใช่แก้ไขด้วยตนเอง!):

Defaults insults

นี่คือตัวอย่างบางส่วน:

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

ทีนี้เพื่อความสนุกฉันต้องการอ่านทุกอย่าง แต่การป้อนรหัสผ่านผิดทั้งวันไม่ใช่วิธีที่ดีที่สุด (หน่วงหลังจากการพยายามแต่ละครั้งมีเพียง 2 ข้อความต่อ 3 ครั้งพยายามยกเลิกหลังจากพยายาม 3 ครั้ง ... )

ดังนั้น ... คำสบประมาทเหล่านี้ถูกเก็บไว้ที่ไหนจริง? ไฟล์ข้อความธรรมดาที่ฉันสามารถอ่านได้โดยตรง? หรือสตริงที่เข้ารหัสยากในซอร์สโค้ด?

ฉันจะดูรายการsudoข้อความดูถูกที่มีอยู่ทั้งหมดได้อย่างไร

คำตอบ:


181

พวกเขาอยู่ในไฟล์ไบนารี

/usr/lib/sudo/sudoers.so

(ค้นพบโดยfind /usr/lib/sudo -type f | xargs grep "fallen in the water":)

หากคุณเปิดใช้งานการดาวน์โหลดแหล่งที่มาและทำ

apt source sudo

คุณสามารถค้นหาไฟล์ insults ได้ในไดเรกทอรีต้นทางภายใต้

plugins/sudoers

ไฟล์เหล่านั้น

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

ตัวอย่างลักษณะของไฟล์เหล่านี้:

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

และอื่น ๆ ... พวกเขาอ่านได้ค่อนข้างมาก


24
ตอนนี้ Zanna บอกเราว่าพวกเขาอยู่ใน sudoers.so คุณสามารถ "อ่าน" พวกเขาโดยใช้สตริงแทนรหัสที่มา เรียกใช้สิ่งนี้: strings /usr/lib/sudo/sudoers.so
Stéphane

3
@ Stéphaneนั่นเป็นความจริง แต่stringsจะไม่บอกคุณว่าการดูหมิ่นทั้งหมดนั้นเท่าเทียมกันหรือไม่ การอ่านแหล่งข้อมูลจริงอาจเปิดเผยว่าเกณฑ์บางอย่างมีอิทธิพลต่อการเลือกดูถูก
kasperd

3
@ Stéphane Plus การเรียกใช้สตริงในไฟล์ที่เรียกใช้งานได้ก่อให้เกิดผลบวกปลอมจำนวนมากอย่างน่าเบื่อ
MariusMatutiae


7
ฉันจะไม่ทำเช่นนี้จนกว่าฉันจะเห็นคนดูถูกคนโง่ที่จุดนี้ฉันไม่สามารถทำกุญแจได้เร็วพอ
JamesENL

77

กับ

dpkg -L sudo | xargs grep dumber

เราสามารถค้นหาไฟล์จากแพคเกจมีคำว่าsudodumber

/usr/lib/sudo/sudoers.soการแข่งขันเพียงอย่างเดียวคือในแฟ้ม นี่เป็นไฟล์ไบนารีดังนั้นเราจึงใช้stringsคำสั่งเพื่อให้ได้สิ่งที่ดูเหมือนมนุษย์สามารถอ่านได้ เนื่องจากมีจำนวนมากที่เราส่งผลให้เกิดless:

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

ในการที่lessเราสามารถใช้

/dumber

เพื่อค้นหาคำว่า "dumber" อีกครั้ง นั่นทำให้เราถูกด่าว่า เลื่อนขึ้นและลงด้วยปุ่มลูกศรและเลิกด้วยq


6
เพิ่มขึ้นเพื่อแสดงเทคนิคทั่วไปง่าย ๆ เพื่อค้นหาคำตอบสำหรับคำถามประเภทนี้
200_success

1
ใช้strings -n10เพื่อลดผลบวกปลอม ดูเพิ่มเติมที่คำตอบของ @ DigitalTraumaซึ่งใช้ objcopy เพื่อป้อนเฉพาะ.rodataส่วนเข้าstringsและลดเสียงรบกวนอีกครั้ง
Peter Cordes

76

รายการด่าทั้งหมด

เมื่อเราดูที่การดูถูกทั้งหมดเราพบว่าอาหารอันโอชะที่น่าสนใจ: การพูดว่าบรอกโคลีถูกต้องทางการเมือง แต่การบอกว่าเบอร์ริโตไม่ได้ ด่าทั้งหมดมีการระบุไว้ด้านล่าง

ins_2001.h (2001 Space Odyssey insults):

.
    /*
     * 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 (Sudo 8 insults ดั้งเดิม):

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

    /*
     * 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 (คนโง่แสดงด่า):

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

ไฟล์insults.hนี้มีคำแนะนำในการคอมไพเลอร์ซึ่งมีการ insults ข้างต้นรวมอยู่ในเคอร์เนลที่รวบรวม แน่นอนคุณสามารถสร้างไฟล์ insults ของคุณเองเพิ่มชื่อใน insults.h และคอมไพล์ใหม่เพื่อให้มีข้อความเช่น "คุณเป็นผู้ใช้ ArchLinux อะไร?" หรือ "นี่ไม่ใช่ Windows ที่มีข้อผิดพลาดทั่วไป" ฯลฯ

แจ้งให้ทราบ#ifdef PC_INSULTSในบางส่วนของไฟล์ดูถูก สิ่งนี้ไม่ได้หมายความว่า "หากคุณมีคอมพิวเตอร์ส่วนบุคคล" หมายความว่า "ถ้าคุณต้องการความถูกต้องทางการเมือง"


46
ฉันไม่รู้ว่า "บรอคโคลี่" ถูกมองว่าถูกต้องทางการเมืองมากกว่า "เบอร์ริโต"
ปุย

9
@fluffy ฉันคิดว่ามันเป็นการอ้างอิงถึงคนที่มีอาหารประจำชาติรวมถึงเบอร์ริโต ตอนนี้ฉันเสียใจที่ไม่ตรวจสอบรหัส ฉันควรใช้ตัวเลือก PC_INSULT เท่านั้นและลบอีกครึ่งหนึ่ง ในทางกลับกันฉันไม่ชอบการเซ็นเซอร์ประวัติศาสตร์เหมือนเกิดขึ้นกับทอมซอว์เยอร์และหนังสือเช่นนั้น ตั้งแต่การดูถูกเหล่านี้มาจากปี 2004 ฉันจะมีความผิดในการเซ็นเซอร์ประวัติฉันได้ลบ #ifdef ส่วน
WinEunuuchs2Unix

7
อย่ากังวลมากเกินไปเกี่ยวกับ "ประวัติการเซ็นเซอร์" เมื่อพูดถึงคำศัพท์ที่เราควรใช้ตอนนี้ ฉันนึกถึงคำหลายคำที่ฉันใช้เมื่อ 40 ปีก่อนซึ่งเป็นการเหยียดเชื้อชาติคนรังเกียจผู้หญิง ฯลฯ ฉันดีใจที่ได้พูดถึงพวกเขาในบริบททางประวัติศาสตร์ของพวกเขา แต่ขอบคุณพระเจ้าที่สังคมได้ก้าวไปข้างหน้าและตระหนักถึงอันตรายในระยะนี้ . ใช่กรุณาพูดจาโผงผางเกี่ยวกับการเมืองที่ถูกต้องถ้าคุณต้องการ ลองใช้คำพูดดูสิก่อนนะ
Michael Durrant

4
ไม่มีที่สิ้นสุดความถูกต้องของพีซี คำใดก็ตามที่ถือได้ว่าเป็นการล่วงละเมิดและบรอกโคลีจะไม่ใช่พีซีในเปรูตัวอย่างเช่น ... เบอร์ริโตเป็นชนชาติที่เห็นได้ชัด
Shautieh

17
คนส่วนใหญ่ที่อยู่นอกสหรัฐอเมริกาและอาจเป็นไปได้ว่าบางคนในสหรัฐฯจะไม่เห็นสิ่งนี้ว่า สำหรับผมแล้วมันตลกว่าใครก็ตามที่เขียนรายการโดยเจตนานี้ด่า (ที่ชื่อคุณลักษณะ!) ได้รับการดูแลจริงเกี่ยวกับคนที่เฉพาะเจาะจงได้รับการโกรธเคืองจริงๆ ... มีสิ้นไปมันไม่มีและหากคุณมีความกังวลจริงๆไม่ได้เปิดใช้งานคุณลักษณะนี้ ... ?!
หัวเราะ

11

คำตอบข้างต้นเหมาะสำหรับการค้นหาแบบออฟไลน์ แต่เราออนไลน์ ดังนั้นเปิดค้นหารหัส Debianและลองหนึ่งด่า ที่นี่ sudo_1.8.12-1/plugins/sudoers/ins_csops.hมันทันทีจะบอกคุณว่าตั้งอยู่ใน นี่เป็นข้อได้เปรียบในการค้นหาทุกที่ไม่ว่าจะเป็นไฟล์กำหนดค่าที่จะนำไปใช้/etcหรืออะไรก็ตาม และเนื่องจากเป็นไฟล์. h จึงสามารถมองเห็นได้ในซอร์สและไม่ใช่สิ่งที่คุณสามารถแก้ไขได้


7

หากต้องการเพิ่มคำตอบอื่น ๆ คำสบประมาทจะปรากฏใน.rodataส่วนของ sudoers.so คุณสามารถใช้objcopyเพื่อ จำกัด การส่งออกค่อนข้างแม้ว่าจะยังคงมีผลบวกปลอมจำนวนมาก:

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

ถ้าคุณสามารถทนต่อจำนวนมากบวกเท็จทำไมไม่เพียงแค่ใช้stringsแทนobjcopy? :)
Ruslan

@Ruslan: มันเป็นแล้วที่objcopy | stringsจะสแกนเฉพาะ.rodataส่วนของส่วนข้อความ สิ่งที่จะช่วยลดผลบวกปลอมคือการเพิ่มความยาวสายขั้นต่ำเริ่มต้นที่ 4 ถึงบางสิ่งบางอย่างเช่น strings -n1010: และท่อเข้าไปlessไม่ใช่headIMO คำสบประมาททั้งหมดดูเหมือนจะอยู่ติดกัน BTW
Peter Cordes

อ่าฉันไม่ได้เลื่อนรหัสเพื่อดูว่าstringsใช้ไปแล้ว
Ruslan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.