![我可以自定义 sudo “将报告此事件”消息吗?](https://linux22.com/image/88203/%E6%88%91%E5%8F%AF%E4%BB%A5%E8%87%AA%E5%AE%9A%E4%B9%89%20sudo%20%E2%80%9C%E5%B0%86%E6%8A%A5%E5%91%8A%E6%AD%A4%E4%BA%8B%E4%BB%B6%E2%80%9D%E6%B6%88%E6%81%AF%E5%90%97%EF%BC%9F.png)
是否可以在 Linux 或 BSD 系统上自定义sudo
“将报告此事件”消息?我已经检查过man sudo
Ubuntu man sudoers
16.04 机器、FreeBSD 10.2 机器和 Fedora 23 机器,但没有发现任何有用的东西。
答案1
答案2
从某种意义上说,这条消息已经是可定制的,因为对于 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
确保您没有损坏文件。