我已授予组权限,以通过sudo运行没有密码的某些命令。当其中一个用户输入错误或运行错误命令时,系统会提示他们输入密码,然后他们将收到错误消息。这会使用户感到困惑,因此我只想显示一个错误,而不是提示他们输入密码。这可能吗?
这是我的sudoers文件的示例:
%mygroup ALL=(ALL) NOPASSWD:/usr/local/bin/myscript.sh *
他们运行错误脚本时的示例:
# sudo /usr/local/bin/otherscript.sh
[sudo] password for user:
Sorry, user user is not allowed to execute '/usr/local/bin/otherscript.sh' as root on <hostname>.
所需的输出:
Sorry, user user is not allowed to execute '/usr/local/bin/otherscript.sh' as root on <hostname>. Please check the command and try again.
注意缺少密码提示。
我的谷歌福失败了我,只有在当用户不要求输入密码返回的结果是允许运行的命令。
这是一个很大的安全性问题。您不应将sudo与脚本一起用作命令。人们可以只编辑脚本并运行他们想要从审计中完全屏蔽它的内容。而是在脚本内添加对sudo的调用。
—
coteyr
sudo
如果用户具有对这些文件的写访问权,则@coteyr与运行二进制文件同样是一个大问题。
@CarlWitthoft,这就是为什么您使用绝对路径在sudoers中指定允许的程序的原因。
—
德米特里·格里戈里耶夫
@DmitryGrigoryev,是的,但是如果您仅使用一个文件使用sed或类似文件,那么sudo没有任何好处。允许用户修改文件是文件具有权限的原因。您不必重新发明轮子。如果您希望用户能够修改文件,请允许他们。没有必要,也不需要使用sudo跳过箍,以允许用户无需密码即可修改文件。您总是可以允许他们这样做。适合正确工作的正确工具。
—
coteyr
sudo
那么在不输入密码的情况下看不到允许您执行的命令。有了您想要的功能,我可以获得有关特定命令的信息。