我想要运行一个需要 sudo 密码的命令,例如:
sudo apt-get update
这不应该起作用吗(我已将密码存储在普通文本文件中passwd.txt
):
sudo apt-get update <~/passwd.txt
这是我解释为什么它应该起作用的逻辑:当需要密码时,要求用户从键盘输入密码。但重定向到stdin
从文件读取passwd.txt
应该有效。
不应该吗?
答案1
sudo
stdin
默认情况下不读取密码。来自sudo
手册页:
-S The -S (stdin) option causes sudo to read the password from the standard input instead of the terminal device.
The password must be followed by a newline character.
因此你应该运行:
sudo -S apt-get update <~/passwd.txt
请记住,将密码存储在文件中并不是一个好习惯。您应该阅读: