Linux

如何允許使用者使用無密碼 sudo 執行某些命令 - 而不會破壞所有其他命令?

  • September 9, 2020

我在 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

如果使用者在添加到組時已登錄,則必須註銷並重新登錄,此更改才會生效。

引用自:https://serverfault.com/questions/1033238