如何针对上述用户验证我在以下sudo
命令中提供的密码?
sh -c "echo <password> | sudo -u <username> <command/script>"
即使我提供的密码不正确,此命令也适用于我。
基于@NikosC的评论。
通过“验证”,我的意思是系统应该确保我提供正确的密码。假设 - 的密码为密码。如果我将密码设为 blahblah 而不是密码,则仍可以使用。
答案 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 /)中的文件。