Dapatkah saya mengkustomisasi pesan sudo “kejadian ini akan dilaporkan”?

20

Apakah mungkin, di Linux atau pada sistem BSD, untuk menyesuaikan pesan sudo"kejadian ini akan dilaporkan"? Aku sudah lebih man sudodan man sudoerspada Ubuntu 16.04 mesin, FreeBSD 10.2 mesin, dan mesin Fedora 23, dan saya belum menemukan sesuatu yang berguna.

Jules
sumber

Jawaban:

31

Dari Sudoers Manual di bawah ini adalah satu-satunya pesan yang diizinkan untuk Anda konfigurasi dengan sudo conf.

badpass_message="Sorry, try again."

Namun untuk menjawab pertanyaan Anda, Anda dipersilakan untuk mengkompilasi salinan sudo Anda sendiri.

Ini akan menjadi pesan yang Anda terima.

Rahul
sumber
12
Ah, keindahan open source. Tidak suka sesuatu? Ubah sendiri!
phyrfox
4
"Ubah sudo!" tapi saya tidak tahu caranya! "sudo ganti sudo!" baik.
Mehrdad
14

Dalam beberapa hal pesan ini sudah dapat disesuaikan karena, seperti untuk banyak bagian GNU / Linux, sudodiinternasionalisasi dan menggunakan gettext Dukungan Bahasa Asli untuk mencari sebagian besar string untuk menggantinya dengan versi lokal dalam bahasa yang berbeda.

Misalnya, Anda dapat melihat file bahasa Prancis di sini yang berisi entri:

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"

Jadi, untuk mengubah pesan Anda perlu menentukan untuk bahasa / lokal mana? dan edit file NLS yang sesuai. Namun, pengguna mungkin tidak menggunakan lokal, jadi ini tidak akan berpengaruh.


Atau, Anda dapat menggunakan editor biner untuk mengganti string /usr/libexec/sudo/sudoers.so, di mana itu terjadi, dengan string yang ukurannya persis sama dan dengan jumlah %sparameter yang sama. Karena ini tidak lagi cocok untuk gettextterjemahan, maka akan berlaku untuk semua lokal. Misalnya

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

Gunakan cmpuntuk memastikan Anda tidak merusak file.

meuh
sumber
Tentunya kita bisa membuatnya berbeda dengan mengkompilasi ulang sudo?
gerrit
@ Ya, solusi terbaik adalah mengedit sumber dan mengkompilasi ulang program.
meuh
3
Anda bisa membuat pesan lebih pendek dengan menambahkan karakter nul, karena C menggunakan string nul-terminated.
Nate Eldredge
@NateEldredge Poin bagus.
meuh