使用 sudo -stdin 时出错

Mat*_*aes 5 sudo echo

我正在尝试在 sudo 上使用 -S stdin arg 。

我试过这个:

echo 'mypass' | sudo -S cat /etc/shadow
Run Code Online (Sandbox Code Playgroud)

echo 'mypass\n' | sudo -S cat /etc/shadow
Run Code Online (Sandbox Code Playgroud)

正如手册页建议添加换行符一样。

两者都行不通。怎么了?

Muk*_*mar 6

echo命令不会打印带有\n序列的换行符。printf代替使用。

printf "mypassword\n" | sudo -S cat /etc/shadow
Run Code Online (Sandbox Code Playgroud)