我试图在每次有人执行 sudo 时启用 sudo 讲座,但似乎根本无法让它发挥作用。
我发现了类似的问题这里其中有人指出,如果执行时没有看到任何结果strings /usr/bin/sudo | grep -A4 -i "lecture"
,则 sudo lesson 未启用,而我没有看到任何结果,所以现在我正在尝试启用它。
我创建了一个/etc/sudoers.d/lecture文件内容如下:
Defaults lecture = always
Defaults lecture_file = /etc/sudoers.lecture
并确保我的/etc/sudoers文件包括/etc/sudoers.d目录。这是我的 sudoers 文件的内容:
Defaults requiretty
Defaults !visiblepw
Defaults always_set_home
Defaults env_reset
Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS"
Defaults env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
root ALL=(ALL) ALL
%wheel ALL=(ALL) NOPASSWD:ALL
#includedir /etc/sudoers.d
我以为#
前面的includedir
是注释掉的,但当我“取消注释”它时,每次我执行 sudo 时都会出错。所以在查看手册后,我发现了这一行:
从 /etc/sudoers.d 读取插入文件(这里的 # 不表示注释)
所以显然这#
不是一个评论......很奇怪。
因此现在/etc/sudoers.d/lecture文件引用/etc/sudoers.lecture我创建了它,其内容只有简单的“Hello World”。
但是,当我使用 sudo 时,我仍然看不到任何讲座,并且仍然看不到任何演讲字符串strings /usr/bin/sudo
...我一定是做错了什么,我就是找不到它。
任何帮助都值得感激,谢谢!
答案1
lecture = always
sudo 手册页没有透露有关和 的组合行为的任何信息NOPASSWD
。
如果要求用户输入密码,并且lecture=always,那么lecture 将会在密码提示之前显示。可能是因为lecture 出现在密码提示之前,如果没有提示,那么就没有lecture。