ฉันสามารถกำหนดข้อความ sudo“ เหตุการณ์นี้จะได้รับการรายงาน” ได้หรือไม่?


20

เป็นไปได้บน Linux หรือบนระบบ BSD เพื่อกำหนดข้อความsudo"เหตุการณ์นี้จะถูกรายงาน" ฉันได้ไปมากกว่าman sudoและman sudoersในเครื่องอูบุนตู 16.04 เครื่อง FreeBSD 10.2 และเครื่อง Fedora 23 และฉันไม่ได้พบสิ่งที่มีประโยชน์

คำตอบ:


31

จากSudoers Manualด้านล่างเป็นข้อความเดียวที่คุณได้รับอนุญาตให้กำหนดค่าด้วย sudo conf

badpass_message="Sorry, try again."

อย่างไรก็ตามเพื่อตอบคำถามของคุณคุณยินดีต้อนรับรวบรวม sudo ของคุณเอง

นี่จะเป็นข้อความที่คุณได้รับ


12
อาความงามของโอเพ่นซอร์ส ไม่ชอบอะไร เปลี่ยนมันเอง!
phyrfox

4
"เปลี่ยน sudo!" แต่ฉันไม่รู้วิธี! "sudo เปลี่ยน sudo!" ถูก
Mehrdad

14

ในบางแง่ข้อความนี้สามารถปรับแต่งได้แล้วเนื่องจากในหลาย ๆ ส่วนของ GNU / Linux นั้นsudoมีความเป็นสากลและใช้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เพื่อให้แน่ใจว่าคุณไม่ได้ไฟล์เสียหาย


แน่นอนเราสามารถทำให้ความยาวแตกต่างกันโดยการคอมไพล์ sudo อีกครั้ง?
gerrit

@gerrit ใช่ทางออกที่ดีที่สุดคือแก้ไขซอร์สและคอมไพล์โปรแกรมใหม่
meuh

3
คุณสามารถทำให้ข้อความสั้นลงได้โดยการเติมด้วยอักขระ nul เนื่องจาก C ใช้สตริงที่สิ้นสุดด้วย nul
Nate Eldredge

@NateEldredge เป็นจุดที่ดี
meuh
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.