![Sudo 命令不从 stdin 询问密码。并且失败](https://linux22.com/image/1180993/Sudo%20%E5%91%BD%E4%BB%A4%E4%B8%8D%E4%BB%8E%20stdin%20%E8%AF%A2%E9%97%AE%E5%AF%86%E7%A0%81%E3%80%82%E5%B9%B6%E4%B8%94%E5%A4%B1%E8%B4%A5.png)
每当我使用 sudo 运行任何命令时,stdin 都不会询问密码。相反,它会自动从某个地方获取密码并失败。一旦所有尝试都用尽,我的命令最终会失败。我也无法打开 sudoers 文件。
我也试过了echo PASSWORD | sudo ls
。这里也输入了错误的密码。
ank@ank-aqua-pc:server$type -a sudo
sudo is /usr/bin/sudo
ank@ank-aqua-pc:server$sudo -l
Sorry, try again.
Sorry, try again.
sudo: 3 incorrect password attempts
答案1
正在man sudo
说(来源)
-S, --stdin 将提示写入标准错误并从标准输入读取密码,而不是使用终端设备。密码后面必须跟换行符。
并且您需要指定此密码用于哪个用户
正确的命令是
PASSWORD="abc\n" #The \n is for newline character
echo $PASSWORD | sudo -S -u <username> <command