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