Czy mogę dostosować komunikat sudo „ten incydent zostanie zgłoszony”?


20

Czy w systemie Linux lub BSD można dostosować komunikat sudo„ten incydent zostanie zgłoszony”? Poszedłem nad man sudoi man sudoersna Ubuntu 16.04 maszynie, a FreeBSD 10,2 maszynie oraz Fedora 23 maszyny, a nie znalazłem niczego pożytecznego.

Odpowiedzi:


31

Z podręcznika Sudoers poniżej jest jedyną wiadomością, którą możesz skonfigurować za pomocą sudo conf.

badpass_message="Sorry, try again."

Jednak, aby odpowiedzieć na twoje pytanie, z przyjemnością skompiluj własną kopię sudo.

To będzie wiadomość, którą otrzymujesz.


12
Ach, piękno open source. Nie lubisz czegoś Zmień to sam!
phyrfox

4
„Zmień sudo!” ale nie wiem jak! „sudo change sudo!” w porządku.
Mehrdad

14

W pewnym sensie ten komunikat jest już dostosowywany, ponieważ, jak w przypadku wielu części GNU / Linux, sudojest internacjonalizowany i używa gettext obsługi języka ojczystego do wyszukiwania większości ciągów w celu zastąpienia ich wersją ustawień regionalnych w innym języku.

Na przykład możesz zobaczyć tutaj plik w języku francuskim , który zawiera wpisy:

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"

Aby zmienić wiadomość, musisz określić, dla którego języka / ustawień regionalnych? i edytuj odpowiedni plik NLS. Jednak użytkownik może nie używać ustawień regionalnych, więc nie przyniesie to żadnego efektu.


Alternatywnie można użyć edytora binarnego, aby zastąpić ciąg znaków /usr/libexec/sudo/sudoers.so, tam gdzie występuje, ciągiem dokładnie tego samego rozmiaru i o tej samej liczbie %sparametrów. Ponieważ nie będzie to już pasować do gettexttłumaczenia, będzie miało zastosowanie do wszystkich lokalizacji. Na przykład

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

Użyj, cmpaby upewnić się, że plik nie został uszkodzony.


Z pewnością możemy uczynić to inną długość poprzez rekompilację sudo?
gerrit

@gerrit tak, najlepszym rozwiązaniem byłoby edytowanie źródła i rekompilacja programu.
Meuh

3
Możesz skrócić komunikat wypełniając go znakami nul, ponieważ C używa łańcuchów zakończonych znakiem nul.
Nate Eldredge

@NateEldredge Dobra uwaga.
Meuh
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.