从 sudo 的联机帮助页:
-S, --stdin
将提示写入标准错误并从标准输入读取密码,而不是使用终端设备。密码后必须跟一个换行符。
使用sudo -S
而不仅仅是的目的是什么sudo
?
sudo
默认情况下从标准输入读取密码是否正确?
“将提示写入标准错误”的目的是什么?sudo
默认情况下是否将其写入标准输出?
他们是否都要求密码后面必须跟一个换行符?
例如,在/sf/answers/2768715701/ 中,sudo -S true
仍然需要输入密码,那么它如何解决该帖子中的原始问题?当我搜索解决方案时,我找到了该链接是否应该在某些 shell 配置文件中运行需要 sudo 的脚本?
谢谢。
更新:
J.Taylor 的回复说
sudo
默认情况下不从 stdin 读取密码 - 它从终端界面读取。
我想知道如何在实现方面理解它。
当程序从标准输入读取时,它从标准输入始终绑定到的文件描述符 0 读取是否正确?
为什么sudo
在使用sudo
without时无法判断是使用标准输入还是终端-S
?
程序(如sudo -S
)如何实现从终端读取而不是从标准输入读取?