sudoのin辱はどこに保存されますか?


234

ユーモアが好きな人のために、以下の行を追加することsudoにより、ニュートラルではなくランダムな多かれ少なかれin辱的なフレーズや面白いフレーズを印刷するように設定できます(手動で編集するのではなく、コマンドを使用してください!):Sorry, try again./etc/sudoerssudo 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回の試行後の中止、...)。

だから...これらのin辱は実際にどこに保存されていますか?直接読むことができるテキストファイルはありますか?または、ソースコードにハードコードされた文字列がありますか?

利用可能なすべてのsudoin辱メッセージのリストを取得するにはどうすればよいですか?

回答:


181

それらはバイナリファイルにあります

/usr/lib/sudo/sudoers.so

(で見つかりました:find /usr/lib/sudo -type f | xargs grep "fallen in the water"

ソースのダウンロードを有効にして

apt source sudo

ソースディレクトリ内のin辱ファイルを見つけることができます

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éphane16年

3
@Stéphaneそれは本当stringsですが、すべてのin辱が等しいかどうかはわかりません。実際の情報源を読むことで、特定の基準がult辱の選択に影響するかどうかを明らかにすることができます。
カスペルド

3
@StéphanePlusが実行可能ファイルで文字列を実行すると、退屈なほど多数の誤検知が発生します。
MariusMatutiae


7
十分な私は、キー速いことができなかったその時点で私は、私がグーンショー侮辱を見るまで、実際にこれをするつもりはなかった
JamesENL

77

dpkg -L sudo | xargs grep dumber

パッケージのどのファイルsudoに単語が含まれているかを検索できますdumber

唯一の一致はfileにあります/usr/lib/sudo/sudoers.so。これはバイナリファイルであるため、このstringsコマンドを使用して、人間が読めるように見えるもののみを取得します。たくさんあるので、結果をless次のようにパイプします。

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

less使える

/dumber

「dumber」という単語を再度検索します。それはus辱に私たちを正しくします。カーソルキーで上下にスクロールして、終了しますq


6
これらの種類の質問に対する答えを見つけるための簡単で一般的なテクニックを示すことに賛成です。
200_success

1
strings -n10誤検出を減らすために使用します。objcopyを使用してセクションにのみフィードする@DigitalTraumaの回答も参照してください。.rodatastrings
ピーターコーデス

76

すべてのIn辱のリスト

私たちがすべてのlook辱を見ると、ブロッコリーは政治的に正しいが、ブリトーはそうではないと言っているという興味深い情報が見つかります。すべてのin辱を以下に示します。

ins_2001.h (2001年のスペースオデッセイのin辱):

.
    /*
     * 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のult辱):

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

    /*
     * 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 (グーンショーのin辱):

.
    /*
     * 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は、コンパイルされたカーネルに含める上記のs辱のコンパイラ命令が含まれています。実際、独自のin辱ファイルを作成し、名前をinsults.hに追加し、「ArchLinuxユーザーは何ですか?」などのメッセージを表示するように再コンパイルできます。または「これはエラーが一般的なWindowsではありません!」など

#ifdef PC_INSULTSいくつかのin辱ファイルに注目してください。これは「パソコンを持っている場合」という意味ではなく、「政治的に正しいことをしたい場合」という意味です。


47
「ブロッコリー」は「ブリトー」よりも政治的に正しいと考えられていませんでした。
ふわふわ

9
@fluffy国民食にブリトーが含まれている人への言及だと思います。私は今、コードを検閲していないことを後悔しています。PC_INSULTオプションのみを使用し、残りの半分を削除する必要がありました。一方で、私はトム・ソーヤーとそのような本で起こったような歴史の検閲が好きではありません。これらのin辱は2004年からのものであるため、#ifdefセクションを削除した場合、履歴を検閲することになります。
WinEunuuchs2Unix

7
今どの用語を使うべきかについて話すとき、「履歴の検閲」についてあまり心配しないでください。私は40年前に人種的にin辱や性差別などで使用した多くの単語を考えることができます。それらの歴史的文脈でそれらを参照できてうれしいです。 。はい、必要に応じて政治的に正しいことをってください。最初に言葉で傷つけられる貧しい少数派になってみてください。
マイケルデュラント

4
PCの正確さに終わりはありません。どんな言葉でも攻撃的とみなすことができ、ブロッコリーは例えばペルーのPCではありません...ブリトーは明らかな人種差別です
シャウティエ

17
米国以外のほとんどの人々、おそらく米国の一部の人々は、これを「明らかな人種差別」とは見なさないでしょう。私にとって、この意図的なin辱のリストを書いた人(機能名です!) ...?!
笑う

11

上記の回答は、オフライン検索に最適です。しかし、私たちはオンラインです。Debianコード検索を開いて、ここでhere辱の1つを試してください 。すぐにそれがにあることを知らせますsudo_1.8.12-1/plugins/sudoers/ins_csops.h。これには、デプロイする構成ファイルなど、どこにでもあるという利点があります/etc。また、.hファイルであるため、ソースに表示され、変更できるものではありません。


7

他の回答に追加すると、in .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:テキストセグメントのセクションobjcopy | stringsのみをスキャンするために、すでにです.rodata。誤検知を減らすのは、最小文字列の長さをデフォルトの4から10:のように増やすことですstrings -n10。そしてパイプにless、ないhead、IMO。ちなみに、すべてのin辱は連続しているようです。
ピーターコーデス

ああ、私はコードをスクロールしませんでした、stringsすでに使用されていることを確認します。
ルスラン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.