如果 NOPASSWD 不起作用,Sudo 不会询问密码

如果 NOPASSWD 不起作用,Sudo 不会询问密码

我有一个程序运行一次并在sudoers完成后自行删除。我有一些从ssh会话中调用该函数的脚本。我希望当我要运行的命令不在sudoers.

有没有一种方法可以覆盖该SUDO_ASKPASS功能,以便我可以跳过运行那些否则会出现密码提示的东西?

我最好的尝试是这样的:

SUDO_ASKPASS=/bin/false sudo -A /opt/sbin/mycommand

但它给我留下了

sudo: pam_authenticate: Conversation error

我基本上不想sudo提示我输入密码,无论我运行的命令是否在 sudoers 中。

-t我的懒惰修复是从我的命令中删除ssh并希望我永远不需要实际使用终端。

我想,另一个解决办法就是为我的脚本干杯sudoers,让它打印 ASCII 竖起大拇指或有用的东西。

有没有一种简单的方法可以解决这个问题?

答案1

你可以问sudo -l。它返回要执行的命令的完整路径,或者以非零状态退出。在这里,我们忽略输出并检查状态返回:

if sudo -l somecommand... >/dev/null
then
    echo "This is permitted" >&2
else
    echo "You are out of luck today" >&2
fi

相关内容