testing用户是否具有sudo权限而不需要用户input

我有一个本地shell脚本,在交付有效负载之前,在远程主机上执行一些testing; 其中一个testing是用户是否具有sudo特权,只需使用sudo -v进行检查,但这需要用户input密码。 此外,远程主机似乎有即时sudo超时,所以每个新的连接都需要密码input,这是我没有改变(作为一个政策)的权限。

我当然可以testing用户是否属于某些组,但是这对于远程主机configuration不是不可知的,所以我希望有一种方法可以检查是否需要假设用户组不需要用户input?

谢谢!

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

恐怕唯一可以testing的是如果用户没有密码的sudo权限。

执行

 sudo -n true 

如果$? 是0,用户有没有密码sudo访问,如果$? 是1,用户需要密码。

如果你需要validation一个特定的程序,改变你的程序的true ,程序不会做任何事情,比如chmod --help

如果您有一个使用sudo访问的用户,例如“root”,则可以使用它来检查其他login。 作为具有访问权的用户运行:

sudo -n -l -U foo 2>&1 | egrep -c -i“不允许运行sudo |不知名的用户”

如果它返回零,“foo”有权限。 否则,它不具有sudo访问权限。

sudo -l

这应该足以决定你是否拥有你想要/需要的特权。