user ALL=(ALL) /usr/bin/vim /etc/httpd/confs/httpd.conf
user ALL=(ALL) /usr/bin/less /etc/httpd/confs/httpd.conf
我认为如果这些脚本是用 sudoers 编写的,“用户”可能会在服务器上造成问题,因为他/她可以执行任意命令。还有其他命令不应该在 sudoers 中被允许吗?如果您也解释一下原因,我将不胜感激。
答案1
而不是允许 vim。尝试一下sudoedit
。
用户 ALL=(ALL) sudoedit /etc/httpd/confs/httpd.conf
强制用户运行cat
而不是more
用户 ALL=(ALL) cat /etc/httpd/confs/httpd.conf
答案2
如果你想限制访问,了解哪些程序可以退出或运行其他 shell 命令很重要。这正是sudoedit
上面提到的原因。
例如:如果您的用户被允许以 root 身份运行ed
,则该用户能够以 root 身份运行转义的 shell 命令。
我不愿意逐一介绍 /bin/ 并告诉您哪些程序允许 shell 转义,但有很多。当您将程序列入白名单时(出于某种原因),请检查手册页中的单词shell escape
。也许还有另一个不允许转义的选项。
我记不清具体还有哪些漏洞需要注意,现在也无法查找。