sudo "이 이벤트가 보고됩니다" 메시지를 사용자 정의할 수 있나요?

sudo "이 이벤트가 보고됩니다" 메시지를 사용자 정의할 수 있나요?

Linux 또는 BSD 시스템에서 sudo"이 이벤트가 보고됩니다" 메시지를 사용자 정의할 수 있습니까? man sudoUbuntu man sudoers16.04 시스템, FreeBSD 10.2 시스템 및 Fedora 23 시스템을 검사했지만 유용한 것을 찾지 못했습니다.

답변1

~에서Sudor 매뉴얼다음은 sudo conf를 사용하여 구성할 수 있는 유일한 메시지입니다.

badpass_message="Sorry, try again."

그러나 귀하의 질문에 답하기 위해 자신만의 sudo 사본을 컴파일하는 것은 환영합니다.

이것당신이받는 메시지가 될 것입니다.

답변2

sudo이 메시지는 GNU/Linux의 많은 부분에서 이미 국제화되어 사용된다는 점에서 이미 사용자 정의가 가능합니다.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파일이 손상되지 않았는지 확인하는 데 사용됩니다 .

관련 정보