我正在寻找一种配置sudo
不要求输入密码的方法(例如,将其添加到配置NOPASSWD
中/etc/sudoers
,但通过询问某些内容来回显要执行的命令以进行确认
命令应该cat /etc/passwd
被执行吗? (是/否)
答案1
我认为下面的功能也许可以解决您的提示问题:
sudo () {
local command=$@
read -rp "Shall command $command be executed? (y/N): "
local YORN_RESP="$(grep -i "[YN]" <<<"${REPLY:0:1}" || echo 'N')"
if [[ "$YORN_RESP" == [Yy] ]]; then
command sudo "$@"
else
return 1
fi
}
只要这个函数被加载,它就会优先于命令sudo
,但是它不会阻止人们/bin/sudo
直接执行。
对于无密码 sudo ,听起来您已经找到了解决方案,但您需要取消文件中以下行的注释/etc/sudoers
:
%wheel ALL=(ALL) NOPASSWD: ALL