Для тех, кто любит юмор, 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
оскорбительных сообщений?
strings /usr/lib/sudo/sudoers.so
strings
не скажу, равны ли все оскорбления. Чтение фактического источника может показать, влияют ли определенные критерии на выбор оскорбления.С участием
мы можем искать, какие файлы из пакета
sudo
содержат словоdumber
.Единственное совпадение в файле
/usr/lib/sudo/sudoers.so
. Это двоичный файл, поэтому мы используемstrings
команду, чтобы получить только то, что выглядит читабельно. Поскольку это много, мы направляем результат вless
:В
less
мы можем использоватьискать снова слово «тупее». Это приводит нас прямо к оскорблениям. Прокрутите вверх и вниз клавишами курсора и выйдите сq
источник
strings -n10
для уменьшения ложных срабатываний. См. Также ответ @ DigitalTrauma, в котором используется objcopy для подачи только.rodata
разделаstrings
, снова уменьшая шум.Список всех оскорблений
Когда мы смотрим на все оскорбления, мы обнаруживаем интересную новость: говорить, что брокколи является политкорректным, а говорить о буррито - нет. Все оскорбления перечислены ниже.
ins_2001.h
(2001 Космическая Одиссея оскорбляет):ins_classic.h
(Оригинальный Судо 8 оскорблений):ins_csops.h
(CSOps оскорбления):ins_goons.h
(Goon Show оскорбления):Файл
insults.h
содержит инструкции компилятора о том, какие из вышеперечисленных оскорблений включить в скомпилированное ядро. В самом деле, вы можете создать свой собственный файл оскорблений, добавить имя в insults.h и перекомпилировать, чтобы получить такие сообщения, как "Что, вы пользователь ArchLinux?" или «Это не Windows, где ошибки обычны!» и т. д.Обратите внимание на
#ifdef PC_INSULTS
некоторые из оскорбительных файлов. Это не означает «если у вас есть персональный компьютер», это означает «если вы хотите быть политкорректным».источник
Приведенные выше ответы отлично подходят для автономного поиска. Но мы в сети. Так что откройте поиск кода Debian и попробуйте одно из оскорблений здесь . Он сразу же говорит вам , что в
sudo_1.8.12-1/plugins/sudoers/ins_csops.h
. Это имеет преимущество в том, что его можно найти везде, будь то файл конфигурации для развертывания/etc
или что-то еще. И поскольку это файл .h, он виден в исходном коде, а не в том, что вы можете изменить.источник
Чтобы добавить к другим ответам, оскорбления, кажется, находятся в
.rodata
разделе sudoers.so. Вы можете использовать,objcopy
чтобы несколько ограничить вывод, хотя по-прежнему будет много ложных срабатываний:источник
strings
вместоobjcopy
? :)objcopy | strings
, чтобы сканировать только.rodata
часть текстового сегмента. Что снижает количество ложных срабатываний является повышение минимальной длины строки от значения по умолчанию 4 до чего - то вроде 10:strings -n10
. И трубаless
, а неhead
ИМО. Все оскорбления кажутся смежными, кстати.strings
он уже был использован.