可能重复:
自动化 sudo su - 用户命令
当 sudo su - user 命令在 j 脚本中执行时,它会要求输入密码。我想要一个解决方案,其中脚本自动从某处读取密码。我没有权限编辑 sudoers 文件。我有权将密码存储在文件中。脚本应该从该文件读取密码。此外,expect 未安装,我无权在运行脚本的机器上安装它
答案1
您可以使用命令
echo "your_password" | sudo -S <rest of your parameters for sudo>
(当然没有 < 和 >)
请注意,您应该保护您的脚本免受未经授权用户的读取访问。如果您想从单独的文件中读取密码,您可以使用
cat /etc/sudo_password_file | sudo -S <rest of your parameters for sudo>
(或者任何密码文件的名称,包含密码和单行换行符。)
来自 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.