设置SUDO_ASKPASS环境变量是什么意思?你怎么做呢?我在哪里声明它?
我尝试使用shell脚本在几分钟后关闭我的计算机并使用java启动此脚本。
答案 0 :(得分:7)
所以我不确定我是否会使用$SUDO_ASKPASS
。基本上$SUDO_ASKPASS
的值是一个可执行文件,它会在调用时将密码吐出标准输出。因此,如果您的密码是'foo',您可以编写一个shell脚本:
#!/bin/bash
echo 'foo'
并将其放在~/bin/pw.sh
中。然后,您将设置环境变量并执行命令:
SUDO_ASKPASS=${HOME}/bin/pw.sh sudo shutdown -h now
这个例子假设你在达尔文; shutdown
在不同的操作系统上表现不同。
更智能的方法(更安全)是使用NOPASSWD
中的/etc/sudoers
参数。我们会添加这样的一行:
jane ALL=NOPASSWD: /sbin/shutdown
这再次假设您使用的是Mac。你的名字是简。改变这一点。这样,当您发出命令/sbin/shutdown
时,sudo不会要求输入密码。 (正确)edit sudoers的命令是visudo
。