我有一个程序运行一次并在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