Linux
如何允許使用者使用無密碼 sudo 執行某些命令 - 而不會破壞所有其他命令?
我在 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.
除了允許對特定命令使用無密碼 sudo 的規則之外,您還需要一些其他 sudo 規則,它允許您的使用者使用 sudo 執行所有命令。
預設的 sudo 配置允許
wheel
組中的使用者使用 sudo 執行所有命令(在提供密碼後),並且應該具有此類訪問權限的使用者應放置在該組中。# usermod -aG wheel myuser
如果使用者在添加到組時已登錄,則必須註銷並重新登錄,此更改才會生效。