Kann ich die Sudo-Meldung "Dieser Vorfall wird gemeldet" anpassen?

20

Ist es unter Linux oder auf BSD-Systemen möglich, die sudoMeldung "Dieser Vorfall wird gemeldet" anzupassen ? Ich habe übergegangen man sudound man sudoersauf einer Ubuntu 16.04 Maschine, eine FreeBSD - 10.2 - Maschine und eine Fedora 23 - Maschine, und ich habe nichts nützlich gefunden.

Jules
quelle

Antworten:

31

Aus dem nachstehenden Sudoers-Handbuch ist die einzige Meldung, die Sie mit der sudo conf konfigurieren dürfen.

badpass_message="Sorry, try again."

Um Ihre Frage zu beantworten, können Sie jedoch gerne Ihre eigene Kopie von sudo kompilieren.

Dies ist die Nachricht, die Sie erhalten.

Rahul
quelle
12
Ah, die Schönheit von Open Source. Magst du etwas nicht? Ändere es selbst!
Phyrfox
4
"Sudo ändern!" aber ich weiß nicht wie! "sudo change sudo!" in Ordnung.
Mehrdad
14

In gewissem Sinne ist diese Nachricht bereits anpassbar, da sie wie viele andere Teile von GNU / Linux sudointernationalisiert ist und die gettext Unterstützung für native Sprachen verwendet , um die meisten Zeichenfolgen zu suchen und sie durch eine Gebietsschemaversion in einer anderen Sprache zu ersetzen.

Zum Beispiel können Sie hier die französische Sprachdatei sehen , die Einträge enthält:

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"

Um die Nachricht zu ändern, müssen Sie angeben, für welche Sprache / welches Gebietsschema. und bearbeiten Sie die entsprechende NLS-Datei. Der Benutzer verwendet jedoch möglicherweise kein Gebietsschema, sodass dies keine Auswirkungen hat.


Alternativ können Sie einen Binäreditor verwenden, um die Zeichenfolge /usr/libexec/sudo/sudoers.so, in der sie vorkommt, durch eine Zeichenfolge mit genau der gleichen Größe und der gleichen Anzahl von %sParametern zu ersetzen . Da dies für die gettextÜbersetzung nicht mehr zutrifft, gilt es für alle Gebietsschemata. Z.B

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

Verwenden cmpSie diese Option, um sicherzustellen, dass Sie die Datei nicht beschädigt haben.

meuh
quelle
Sicherlich können wir die Länge ändern, indem wir sudo neu kompilieren.
Gerrit
@gerrit ja, die beste Lösung wäre, die Quelle zu bearbeiten und das Programm neu zu kompilieren.
MEUH
3
Sie könnten die Nachricht kürzer machen, indem Sie mit Nullen auffüllen, da C mit Nullen abgeschlossene Zeichenfolgen verwendet.
Nate Eldredge
@ NateEldredge Guter Punkt.
Meuh