sudo
(使用命令Sorry, try again.
,而不是手动编辑!),将/etc/sudoers
配置为打印一个或多或少的侮辱性或有趣的随机短语,而不是中性的sudo visudo
。 br /> Defaults insults
这里有一些例子:整天输入错误的密码并不是最好的方法(每次尝试后都会延迟,每3次尝试仅发送2条消息,每3次尝试就会中止,...)。
那么...这些侮辱实际上存储在哪里?我可以直接阅读任何纯文本文件吗?还是源代码中的硬编码字符串?
如何获取所有可用的
sudo
侮辱消息的列表?#1 楼
它们在二进制文件中/>/usr/lib/sudo/sudoers.so
您可以在源目录下的侮辱文件中找到
apt source sudo
文件是
plugins/sudoers
这些文件的示例示例:
find /usr/lib/sudo -type f | xargs grep "fallen in the water"
等等...它们非常易读。
#2 楼
进行自己的侮辱您可以更改sudo侮辱而无需重新编译sudo。
请参阅:添加新的sudo侮辱
头文件侮辱
当我们看到所有侮辱时,我们会发现一个有趣的花絮:说西兰花在政治上是正确的,但说墨西哥玉米煎饼不是。下面列出了所有侮辱。
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
(原始Sudo 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侮辱): /*
* 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侮辱):.
/*
* 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
包含编译器指令,其中要求将上述哪些侮辱包含在已编译的sudo程序中。实际上,您可以创建自己的insults文件,将名称添加到insults.h中,然后重新编译以显示诸如“什么,您是ArchLinux用户?”之类的消息。或“这不是常见错误的Windows!”等。请注意某些侮辱性文件中的
#ifdef PC_INSULTS
。这并不是说“如果您有一台个人计算机”,而是“如果您想在政治上是正确的。” >对于Ubuntu 16.04.6 LTS,您可以使用以下命令:希望其他人可以验证其版本。评论
我不知道“西兰花”在政治上比“墨西哥卷饼”更正确。
–蓬松
16-10-15在23:25
@fluffy我认为这是对国民饮食包括墨西哥卷饼的参考。我现在很遗憾没有审查代码。我应该只使用PC_INSULT选项并删除另一半。另一方面,我不喜欢汤姆·索耶(Tom Sawyer)和类似书籍所经历的历史审查。由于这些侮辱来自2004年,如果我删除了#ifdef部分,我将对历史进行审查。
–WinEunuuchs2Unix
16-10-15在23:33
在谈论我们现在应该使用什么术语时,不必太担心“审查历史”。我可以想到40年前我曾使用过许多种族侮辱,性别歧视等词语。我很高兴在其历史背景下提及这些词语,但感谢上帝社会在这些词语中的许多方面已经向前发展并认识到危害。是的,如果您愿意,请在政治上大声疾呼。请先在一个受言语伤害的贫穷少数民族中尝试。
–迈克尔·杜兰特(Michael Durrant)
16-10-16在11:22
PC的正确性无止境。任何单词都可以被认为是令人反感的,例如在秘鲁,西兰花就不会是PC。。。
– Shautieh
16-10-17在3:04
美国以外的大多数人,可能还有美国的某些人,不会将其视为“明显的种族侮辱”。对我来说,很有趣的是,谁写了这个故意侮辱性清单(这就是功能名称!)实际上关心的是特定的人真的得罪了……这是没有止境的,如果您真的担心,不要启用此功能...?!
–笑着向Monica C致敬
16-10-17在10:51
#3 楼
使用dpkg -L sudo | xargs grep dumber
,我们可以搜索软件包
sudo
中的哪些文件包含单词dumber
。这是一个二进制文件,因此我们使用/usr/lib/sudo/sudoers.so
命令仅获取看起来易于阅读的内容。因为很多,我们将结果传送到strings
中:再次搜索单词“ dumber”。那使我们直接受到侮辱。使用光标键上下滚动并使用q 退出
评论
因展示一种简单的通用技术来发现这些问题的答案而受到赞誉。
– 200_success
16-10-17在17:15
使用字符串-n10可以减少误报。另请参见@DigitalTrauma的答案,该答案使用objcopy仅将.rodata节输入到字符串中,从而再次降低了噪音。
– Peter Cordes
16-10-23在10:52
#4 楼
以上答案非常适合离线搜索。但是我们在线。因此,打开Debian代码搜索并在此处尝试一种侮辱。它会立即告诉您它在sudo_1.8.12-1/plugins/sudoers/ins_csops.h
中。这样做的好处是,无论是在/etc
中部署的配置文件还是其他任何地方,都可以找到它。而且,由于它是.h文件,因此可以在源文件中看到它,而不是可以修改的文件。#5 楼
为了增加其他答案,这些侮辱似乎在sudoers.so的.rodata
部分中。您仍然可以使用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.
$
评论
如果您可以容忍许多误报,为什么不使用字符串而不是objcopy? :)
–俄罗斯
16-10-22在14:18
@Ruslan:已经是objcopy |字符串,仅扫描文本段的.rodata部分。减少误报的原因是将最小字符串长度从默认的4增加到了10:strings -n10。 IMO减少了,而不是增加了。顺便说一句,所有侮辱似乎都是连续的。
– Peter Cordes
16-10-23在10:49
啊,我没有滚动代码,看是否已经使用了字符串。
–俄罗斯
16-10-23在14:02
评论
现在Zanna告诉我们它们在sudoers.so中,您也可以使用字符串而不是源代码“读取”它们。运行此命令:字符串/usr/lib/sudo/sudoers.so
–Stéphane
16-10-16在5:08
@Stéphane是的,尽管字符串不会告诉您所有侮辱是否相等。阅读实际来源可以揭示某些标准是否会影响侮辱的选择。
–卡巴斯德
16-10-16在21:57
@StéphanePlus在可执行文件上运行字符串会产生大量的误报。
– MariusMatutiae
16-10-17在10:30
ins_2001.h ins_classic.h ins_csops.h ins_goons.h
–马特
16-10-18在2:09
直到我看到Goon Show的侮辱时,我才打算这样做,这时我无法足够快地进行击键
–JamesENL
16-10-18在4:25