【发布时间】:2008-09-23 16:55:16
【问题描述】:
我希望能够快速检查我是否都具有 sudo 访问权限以及我的密码是否已经过身份验证。我不担心专门为我即将执行的操作而拥有 sudo 访问权限,但这将是一个不错的奖励。
具体来说,我要使用它是一个我希望由一系列用户运行的脚本。有些有 sudo 访问权限。都知道root密码。
当他们运行我的脚本时,如果可能的话,我希望它使用 sudo 权限而不提示输入密码,否则回退到询问 root 密码(因为他们可能没有sudo 访问)。
我的第一次非工作尝试是在 STDIN 关闭或从 /dev/null 读取的情况下分叉 sudo -S true。但这仍然会提示输入密码并等待几秒钟。
我尝试了其他几件事,包括等待 0.3 秒以查看它是否立即成功,但我尝试的所有操作最终都在某些情况下失败。 (并不是因为我的超时时间太短。)很难弄清楚发生了什么,因为我不能像往常一样只是 strace。
我知道的一件事是在运行sudo -S true 之前关闭 STDIN 或将其附加到管道上。我希望这会使密码提示立即失败,但它仍然提示并且行为奇怪。我想它可能需要一个终端。
【问题讨论】: