Могу ли я настроить сообщение sudo «об этом инциденте будет сообщено»?


20

Возможно ли в Linux или в системах BSD настроить сообщение sudo«об этом инциденте будет сообщено»? Я перешел man sudoи man sudoersна 16,04 машины Ubuntu, в FreeBSD 10.2 машине, и Fedora 23 машину, и я ничего полезного не нашел.

Ответы:


31

Из Руководства Sudoers ниже приведено единственное сообщение, которое вам разрешено настраивать с помощью sudo conf.

badpass_message="Sorry, try again."

Однако, чтобы ответить на ваш вопрос, вы можете скомпилировать свою собственную копию sudo.

Это будет сообщение, которое вы получаете.


12
Ах, красота открытого источника. Не нравится что-то? Измени это сам!
phyrfox

4
"Измени судо!" но я не знаю как! "sudo изменить sudo!" Хорошо.
Мердад

14

В некотором смысле это сообщение уже настраивается, потому что, как и во многих частях GNU / Linux, sudoоно интернационализировано и использует gettext поддержку родного языка для поиска большинства строк, чтобы заменить их версией локали на другом языке.

Например, вы можете увидеть французский языковой файл здесь , который имеет запись:

msgid "%s is not in the sudoers file.  This incident will be reported.\n"
msgstr "%s n'apparaît pas dans le fichier sudoers. Cet événement sera signalé.\n"

msgid "%s is not allowed to run sudo on %s.  This incident will be reported.\n"
msgstr "%s n'est pas autorisé à exécuter sudo sur %s. Cet événement sera signalé.\n"

Итак, чтобы изменить сообщение, вам нужно указать для какого языка / локали? и отредактируйте соответствующий файл NLS. Однако пользователь может не использовать локаль, поэтому это не будет иметь никакого эффекта.


Кроме того, вы можете использовать бинарный редактор, чтобы заменить строку, в /usr/libexec/sudo/sudoers.soкоторой она находится, строкой точно такого же размера и с таким же количеством %sпараметров. Так как это больше не будет соответствовать gettextпереводу, оно будет применяться ко всем локалям. Например

sed < /usr/libexec/sudo/sudoers.so 's/This incident will be reported/This incident WILL BE REPORTED/' >/tmp/sudoers.so
cmp -l /usr/libexec/sudo/sudoers.so /tmp/sudoers.so

Используйте, cmpчтобы убедиться, что вы не повредили файл.


Конечно, мы можем сделать его другой длины, перекомпилировав sudo?
gerrit

@gerrit да, лучшим решением было бы отредактировать исходный код и перекомпилировать программу.
Мей

3
Вы можете сделать сообщение короче, заполнив его нулевыми символами, поскольку C использует строки с нулевым символом в конце.
Нейт Элдридж

@NateEldredge Хороший вопрос.
Меу
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.