-4

我正在用 Java 编写一个程序来关闭 Ubuntu 服务器。

 echo password | sudo -S shutdown -h now
 sudo -p 'password' shutdown -h now

任何一个命令都不起作用。

我需要 sudo 命令来关闭并通过传递密码重新启动我的服务器。因为我是从程序中执行此操作的,所以它不应该提示输入密码。密码也应该与命令一起发送。任何建议都会有所帮助......

4

1 回答 1

1

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"
于 2013-03-16T09:59:05.173 回答