无法在 CentOS 7 服务器上使用 sudo Lecture

无法在 CentOS 7 服务器上使用 sudo Lecture

我试图在每次有人执行 sudo 时启用 sudo 讲座,但我似乎根本无法让它工作。

我发现了一个类似的问题这里,其中有人指出,如果执行时没有看到任何结果strings /usr/bin/sudo | grep -A4 -i "lecture",则 sudo Lecture 未启用,而我没有看到任何结果,所以现在我正在尝试启用它。

我创建了一个/etc/sudoers.d/讲座文件包含以下内容:

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/讲座文件参考/etc/sudoers.lecture,我创建了它,用一个简单的“Hello World”作为它的唯一内容。

然而,当我sudo时,我仍然没有看到任何讲座,并且仍然没有看到任何演讲字符串strings /usr/bin/sudo...我一定做错了什么,我只是找不到它。

更新

托马斯·N建议我使用sudo -k清除任何正在回收的缓存身份验证凭据:

[Fri May 06 12:25:33]{1} root@web-stg-a01:~(✓)# cat /etc/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
[Fri May 06 12:25:37]{2} root@web-stg-a01:~(✓)# cat /etc/sudoers.d/lecture
Defaults        lecture = always
Defaults        lecture_file = /etc/sudoers.lecture
[Fri May 06 12:25:42]{3} root@web-stg-a01:~(✓)# cat /etc/sudoers.lecture
TEST...
[Fri May 06 12:25:47]{4} root@web-stg-a01:~(✓)# exit
logout
[Fri May 06 12:25:51]{15} cymedica@web-stg-a01:~(✓)$ sudo -k su -
Last login: Fri May  6 12:25:33 MST 2016 on pts/1
[Fri May 06 12:25:56]{1} root@web-stg-a01:~(✓)#

但事实并非如此。

答案1

这可能是在调用中回收缓存的身份验证凭据的结果sudo。尝试使用

sudo -k <some_allowed_command>

看看这是否能让你得到你期望的行为。

相关内容