सवाल सुडो के अपमान कहां से संग्रहीत हैं?


उन लोगों के लिए जो हास्य पसंद करते हैं, 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!

अब सिर्फ मज़ेदार के लिए मैं उन सभी के माध्यम से पढ़ना चाहता हूं, लेकिन पूरे दिन गलत पासवर्ड दर्ज करना वास्तव में सबसे अच्छा तरीका नहीं है (प्रत्येक प्रयास के बाद देरी, प्रति 3 प्रयासों में केवल 2 संदेश, 3 प्रयासों के बाद निरस्त करें ...)।

तो ... इन अपमानों को वास्तव में कहाँ संग्रहित किया जाता है? कोई सादा पाठ फ़ाइल मैं सीधे पढ़ सकता हूँ? या स्रोत कोड में हार्ड कोडित तार?

मैं सभी उपलब्धियों की एक सूची कैसे प्राप्त कर सकता हूं sudo अपमान संदेश?


225
2017-10-15 18:25


मूल




जवाब:


वे बाइनरी फाइल में हैं

/usr/lib/sudo/sudoers.so

(द्वारा खोजा गया: find /usr/lib/sudo -type f | xargs grep "fallen in the water")

यदि आप स्रोत डाउनलोड सक्षम करते हैं और करते हैं

apt source sudo

आप स्रोत निर्देशिका में अपमान फाइलें पा सकते हैं

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

और इतने पर ... वे काफी पठनीय हैं।


173
2017-10-15 18:34



अब जब ज़ाना हमें बताती है कि वे सूडर्स में हैं। इसलिए, आप स्रोत कोड की बजाय तारों का उपयोग करके उन्हें "पढ़ सकते हैं"। इसे चलाओ: strings /usr/lib/sudo/sudoers.so - Stéphane
@ स्टीफन यह सच है, यद्यपि strings आपको नहीं बताएगा कि सभी अपमान बराबर हैं या नहीं। वास्तविक स्रोत को पढ़ना यह प्रकट कर सकता है कि कुछ मानदंड अपमान की पसंद को प्रभावित करते हैं या नहीं। - kasperd
@ स्टीफन प्लस चल रहा है तार निष्पादन योग्य पर झूठी सकारात्मक संख्याओं की एक बड़ी संख्या उत्पन्न होती है। - MariusMatutiae
ins_2001.h  ins_classic.h  ins_csops.h  ins_goons.h - Matt
जब तक मैंने गोयन शो अपमान नहीं देखा, तब तक मैं वास्तव में ऐसा नहीं कर रहा था, जिस बिंदु पर मैं पर्याप्त तेज़ी से कुंजी नहीं कर सका - JamesENL


साथ में

dpkg -L sudo | xargs grep dumber

हम पैकेज से कौन सी फाइलों को खोज सकते हैं sudo शब्द शामिल है dumber

एकमात्र मैच फाइल में है /usr/lib/sudo/sudoers.so। यह एक बाइनरी फ़ाइल है इसलिए हम इसका उपयोग करते हैं strings आदेश केवल उन चीज़ों को प्राप्त करने के लिए जो मानव पठनीय होने की तरह दिखते हैं। चूंकि यह बहुत कुछ है जिसके परिणामस्वरूप हम पाइप करते हैं less:

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

में less हम प्रयोग कर सकते हैं

/dumber

"डंबर" शब्द के लिए फिर से खोजना। यह हमें अपमान में सही बनाता है। कर्सर कुंजी के साथ ऊपर और नीचे स्क्रॉल करें और साथ छोड़ दें क्ष


75
2017-10-15 18:55



इन प्रकार के सवालों के जवाब खोजने के लिए एक आसान सामान्य तकनीक दिखाने के लिए उपरोक्त। - 200_success
उपयोग strings -n10 झूठी सकारात्मक को कम करने के लिए। यह भी देखें @ डिजिटल ट्राउमा का जवाब जो केवल फ़ीड करने के लिए objcopy का उपयोग करता है .rodata खंड में strings, फिर शोर को कम करना। - Peter Cordes


सभी अपमान की सूची

जब हम सभी अपमानों को देखते हैं तो हम एक दिलचस्प कहानी खोजते हैं: कह रहे हैं कि ब्रोकोली राजनीतिक रूप से सही है, लेकिन कह रही है कि बुरिटो नहीं है। सभी अपमान नीचे सूचीबद्ध हैं।

ins_2001.h (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 (मूल सूडो 8 अपमान):

    /*
     * 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 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 संकलित कर्नेल में उपर्युक्त अपमानों में शामिल करने के लिए संकलक निर्देश शामिल हैं। दरअसल, आप अपनी खुद की अपमान फाइल बना सकते हैं, अपमानित करने के लिए नाम जोड़ सकते हैं और संदेश भेज सकते हैं, "क्या, आप एक आर्कलिंक्स उपयोगकर्ता हैं?" या "यह विंडोज नहीं है जहां त्रुटियां आम हैं!", आदि

ध्यान दें #ifdef PC_INSULTS कुछ अपमानजनक फाइलों में। इसका मतलब यह नहीं है कि "यदि आपके पास व्यक्तिगत कंप्यूटर है" तो इसका अर्थ है "यदि आप राजनीतिक रूप से सही होना चाहते हैं।"


72
2017-10-15 20:22



मुझे नहीं पता था कि "ब्रोकोली" को "burrito" से अधिक राजनीतिक रूप से सही माना जाता था। - fluffy
@fluffy मुझे लगता है कि यह उन लोगों के लिए एक संदर्भ है जो राष्ट्रीय आहार में burrito शामिल हैं। अब मुझे कोड सेंसर नहीं करना पछतावा है। मुझे केवल पीसी_INSULT विकल्पों का उपयोग करना चाहिए था और दूसरे आधा हटा दिया जाना चाहिए था। दूसरी ओर मुझे इतिहास की सेंसरशिप पसंद नहीं है जैसे टॉम सॉयर और इस तरह की किताबें। चूंकि ये अपमान 2004 से हैं, इसलिए मैं सेंसरिंग इतिहास के दोषी हूं, मैंने #ifdef अनुभागों को हटा दिया था। - WinEunuuchs2Unix
जब हमें अब किन शब्दों का उपयोग करना चाहिए, इस बारे में बात करते समय "सेंसरिंग इतिहास" के बारे में ज्यादा चिंता न करें। मैं कई सारे शब्दों के बारे में सोच सकता हूं जिन्हें मैंने 40 साल पहले इस्तेमाल किया था, जो नस्लीय अपमानजनक, लिंगवादी इत्यादि थे। मुझे उनके ऐतिहासिक संदर्भ में उन्हें संदर्भित करने में प्रसन्नता हो रही है, लेकिन भगवान समाज का शुक्रिया आगे बढ़ गया है और इन शर्तों में से कई में नुकसान पहुंचा है । हां कृपया अगर आप चाहते हैं तो राजनीतिक रूप से सही के बारे में बताएं। पहले शब्दों द्वारा चोट पहुंचाने वाले गरीब अल्पसंख्यक होने की कोशिश करें। - Michael Durrant
पीसी शुद्धता का कोई अंत नहीं है। किसी भी शब्द को आक्रामक माना जा सकता है, और ब्रोकोली पेरू में पीसी नहीं होगा उदाहरण के लिए ... Burrito हालांकि एक स्पष्ट नस्लीय स्लर है। - Shautieh
यूएस के बाहर ज्यादातर लोग और शायद अमेरिका में कुछ इसे "एक स्पष्ट नस्लीय स्लर" के रूप में नहीं देख पाएंगे। मेरे लिए, यह मजाकिया है कि जो भी जानबूझकर इस सूची को लिखा था अपमान (यह सुविधा का नाम है!) वास्तव में विशिष्ट लोगों को वास्तव में नाराज होने की परवाह है ... इसका कोई अंत नहीं है, और यदि आप वास्तव में चिंतित हैं, तो इस सुविधा को सक्षम न करें ...? - laugh


उपरोक्त उत्तरों ऑफ़लाइन खोज के लिए बहुत अच्छे हैं। लेकिन हम ऑनलाइन हैं। तो खुला डेबियन कोड खोज और अपमान में से एक को आजमाएं यहाँ । यह तुरंत आपको बताता है कि यह अंदर है sudo_1.8.12-1/plugins/sudoers/ins_csops.h। इसे खोजने का इसका फायदा है हर जगह इसे एक विन्यास फाइल में तैनात किया जाना चाहिए /etc जो कुछ भी। और चूंकि यह एक .h फ़ाइल है, यह प्रतीत होता है कि यह स्रोत में है और कुछ भी जिसे आप संशोधित नहीं कर सकते हैं।


11
2017-10-18 23:49





अन्य उत्तरों में जोड़ने के लिए, अपमान में दिखाई देता है .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.
$ 

7
2017-10-17 23:48



यदि आप बहुत सारे झूठे सकारात्मक सहन कर सकते हैं, तो क्यों न केवल उपयोग करें strings के बजाय objcopy? :) - Ruslan
@ रुस्लान: यह पहले से ही है objcopy | strings, केवल स्कैन करने के लिए .rodata पाठ खंड का खंड। जो झूठी सकारात्मक कमी करता है, वह न्यूनतम 4 से न्यूनतम स्ट्रिंग लम्बाई को 10 तक कुछ बढ़ा रहा है: strings -n10। और अंदर पाइप less, नहीं head, आईएमओ। सभी अपमान संगत, बीटीडब्ल्यू प्रतीत होते हैं। - Peter Cordes
आह, मैंने देखने के लिए कोड स्क्रॉल नहीं किया था strings पहले से ही इस्तेमाल किया गया था। - Ruslan