自动化 sudo su - 无需使用 expect 或编辑 sudoers 文件的用户命令

自动化 sudo su - 无需使用 expect 或编辑 sudoers 文件的用户命令

可能重复:
自动化 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.

相关内容