我正在用 Java 编写一个程序来关闭 Ubuntu 服务器。
echo password | sudo -S shutdown -h now
sudo -p 'password' shutdown -h now
任何一个命令都不起作用。
我需要 sudo 命令来关闭并通过传递密码重新启动我的服务器。因为我是从程序中执行此操作的,所以它不应该提示输入密码。密码也应该与命令一起发送。任何建议都会有所帮助......
sudo 的 -p 选项指定提示符,而不是密码。看一下 -A 选项。sudo 手册页的摘录-:
-A Normally, if sudo requires a password, it will read it from the current
terminal. If the -A (askpass) option is specified, a
helper program is executed to read the user's password and output the
password to the standard output. If the SUDO_ASKPASS environment variable
is set, it specifies the path to the helper program. Otherwise, the value
specified by the askpass option in sudoers(5) is used.
帮助程序必须输出正确的密码。所以要指定帮助程序-:
export SUDO_ASKPASS="/path/to/helper"