无需用户输入即可测试用户是否具有 sudo 权限

Dan*_*anH 13 ssh sudo

我有一个本地 shell 脚本,它在提供有效负载之前在远程主机上执行许多测试;其中一项测试是用户是否具有 sudo 权限,只需检查一下,sudo -v但这需要用户输入密码。此外,远程主机似乎有即时 sudo 超时,因此每个新连接都需要输入密码,这是我无权更改的(作为策略)。

我当然可以测试用户是否属于某些组,但是这与远程主机配置无关,所以我希望有一种方法可以检查不需要假设用户的组,以及因为不需要用户输入?

谢谢!

更新:为了回应我的评论,我只想测试用户是否可以使用 sudo,而不需要用户交互进行该测试。

小智 17

恐怕您唯一可以测试的是用户是否具有没有密码的sudo 权限。

执行

sudo -n true
Run Code Online (Sandbox Code Playgroud)

如果 $? 为 0,用户无需密码即可 sudo 访问,如果 $? 为1,用户需要密码。

如果您需要对特定程序进行验证,请更改true您的程序,以程序不执行任何操作的方式,例如chmod --help