¿Puedo personalizar el mensaje de sudo "este incidente se informará"?

20

¿Es posible, en Linux o en sistemas BSD, personalizar el sudomensaje "este incidente será informado"? He repasado man sudoy man sudoersen una máquina de Ubuntu 16.04, un 10,2 máquina FreeBSD, y una máquina de Fedora 23, y no he encontrado nada útil.

Jules
fuente

Respuestas:

31

De Sudoers Manual de abajo es el único mensaje que está autorizado a configurar con el conf sudo.

badpass_message="Sorry, try again."

Sin embargo, para responder a su pregunta, puede compilar su propia copia de sudo.

Este sería el mensaje que está recibiendo.

Rahul
fuente
12
Ah, la belleza del código abierto. ¿No te gusta algo? ¡Cámbialo tú mismo!
phyrfox
44
"¡Cambia sudo!" pero no se como! "sudo cambia sudo!" bueno.
Mehrdad
14

En cierto sentido, este mensaje ya se puede personalizar porque, como en muchas partes de GNU / Linux, sudose internacionaliza y utiliza el gettext soporte de idioma nativo para buscar la mayoría de las cadenas para reemplazarlas por una versión local en un idioma diferente.

Por ejemplo, puede ver el archivo de idioma francés aquí que tiene 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"

Entonces, para cambiar el mensaje, ¿necesita especificar para qué idioma / localidad? y edite el archivo NLS apropiado. Sin embargo, el usuario puede no estar usando una configuración regional, por lo que esto no tendrá ningún efecto.


Alternativamente, se puede utilizar un editor binario para reemplazar la cadena en /usr/libexec/sudo/sudoers.so, donde se produce, por una serie de exactamente el mismo tamaño y con el mismo número de %sparámetros. Como esto ya no coincidirá con la gettexttraducción, se aplicará a todas las configuraciones regionales. P.ej

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

Úselo cmppara asegurarse de que no ha dañado el archivo.

meuh
fuente
¿Seguramente podemos hacer una longitud diferente recompilando sudo?
Gerrit
@gerrit sí, la mejor solución sería editar la fuente y recompilar el programa.
meuh
3
Puede acortar el mensaje rellenando con caracteres nulos, ya que C usa cadenas terminadas en nulos.
Nate Eldredge
@NateEldredge Buen punto.
meuh