2012-09-26 234 views
3

设置SUDO_ASKPASS环境变量是什么意思?你怎么做呢?我在哪里申报?如何设置SUDO_ASKPASS环境变量?

我想在几分钟后使用shell脚本关闭我的电脑,并用java启动此脚本。

+0

可能的重复[如何从Java设置环境变量?](http://stackoverflow.com/questions/318239/how-do-i-set-environment-variables-from-java) –

回答

5

所以我不确定我会用$SUDO_ASKPASS这个。基本上,$SUDO_ASKPASS的值是一个可执行文件,它将在调用时将密码吐出标准输出。所以,如果你的密码是“富”,你可以写一个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