我在 AWS EC2 实例上安装了 CIS 强化版 RHEL 8 主机。我的目标是允许我的用户sudo
无密码运行某些命令(例如ls
,,cat
...),而其他命令(例如vi
)应保持密码保护。
我已将以下行添加到/etc/sudoers.d/99-foo
,并将其包含在 中/etc/sudoers
:
myuser ALL=(ALL) NOPASSWD: /usr/sbin/visudo,/usr/bin/ls
(我刚刚把自己锁在外面了,因此visudo
......)
这对于指定的命令来说非常有效:
[myuser@myhost ~]$ sudo ls -l /var/log/httpd/access_log | wc -l
1
但是,所有其他命令 - 我仍然希望使用密码保护! - 现在失败了:
[myuser@myhost ~]$ sudo echo "hello stackexchange!"
[sudo] password for myuser:
Sorry, user myuser is not allowed to execute '/bin/echo hello stackexchange!' as root on myhost.
答案1
除了允许无密码 sudo 执行特定命令的规则外,你还需要一些其他 sudo 规则,允许您的用户使用 sudo 运行所有命令。
默认的 sudo 配置允许wheel
组中的用户使用 sudo 运行所有命令(提供密码后),并且应该具有此类访问权限的用户应放在此组中。
# usermod -aG wheel myuser
如果用户在添加到组时已登录,则他们必须注销并重新登录,此更改才能生效。