Posso personalizar a mensagem sudo "este incidente será relatado"?

20

É possível, no Linux ou em sistemas BSD, personalizar a sudomensagem "este incidente será relatado"? Eu tenho ido ao longo man sudoe man sudoersem um 16.04 máquina Ubuntu, um FreeBSD 10,2 máquina e uma máquina Fedora 23, e eu não encontrei nada de útil.

Jules
fonte

Respostas:

31

De sudoers manual abaixo é a única mensagem que você está autorizado a configurar com os conf sudo.

badpass_message="Sorry, try again."

No entanto, para responder sua pergunta, você pode compilar sua própria cópia do sudo.

Esta seria a mensagem que você está recebendo.

Rahul
fonte
12
Ah, a beleza do código aberto. Não gosta de algo? Mude você mesmo!
Phyrfox 12/05/19
4
"Mude sudo!" mas eu não sei como! "sudo mudar sudo!" OK.
Mehrdad 13/05
14

De alguma forma, essa mensagem já é personalizável porque, como em muitas partes do GNU / Linux, sudoé internacionalizada e usa o gettext Suporte ao Idioma Nativo para procurar a maioria das strings para substituí-las por uma versão local em um idioma diferente.

Por exemplo, você pode ver o arquivo de idioma francês aqui, que possui entradas:

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"

Então, para alterar a mensagem, você precisa especificar para qual idioma / localidade? e edite o arquivo NLS apropriado. No entanto, o usuário pode não estar usando um código de idioma, portanto, isso não terá efeito.


Como alternativa, você pode usar um editor binário para substituir a sequência /usr/libexec/sudo/sudoers.so, onde ela ocorre, por uma sequência exatamente do mesmo tamanho e com o mesmo número de %sparâmetros. Como isso não corresponderá mais à gettexttradução, será aplicada a todos os locais. Por exemplo

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

Use cmppara garantir que você não corrompeu o arquivo.

meuh
fonte
Certamente podemos torná-lo um comprimento diferente recompilando o sudo?
Gerrit
@gerrit sim, a melhor solução seria editar a fonte e recompilar o programa.
Meuhttp:
3
Você pode tornar a mensagem mais curta preenchendo caracteres nulos, pois C usa cadeias terminadas em nulo.
Nate Eldredge
@NateEldredge Bom ponto.
meuh