在sudo命令中验证密码

时间:2013-08-09 13:30:34

标签: linux command sudo

如何针对上述用户验证我在以下sudo命令中提供的密码?

sh -c "echo <password> | sudo -u <username> <command/script>"

即使我提供的密码不正确,此命令也适用于我。


基于@NikosC的评论。

通过“验证”,我的意思是系统应该确保我提供正确的密码。假设 - 的密码为密码。如果我将密码设为 blahblah 而不是密码,则仍可以使用。

1 个答案:

答案 0 :(得分:1)

告诉sudo使用-S选项从标准输入读取密码,并且不使用-k选项考虑先前身份验证的缓存凭据。此外,您应该能够直接使用管道而无需生成新的shell。所以就这样做:

echo password | sudo -k -S -u username command/script

有几点需要注意。首先,大多数系统都以某种方式配置sudo以获取当前用户的密码,而不是目标用户的密码。要将sudo配置为读取目标用户的密码,必须设置:

Defaults targetpw

在你的sudo配置中(/ etc / sudoers或/etc/sudoers.d /)中的文件。