如何设置SUDO_ASKPASS环境变量?

时间:2012-09-26 18:40:05

标签: java shell sudo

设置SUDO_ASKPASS环境变量是什么意思?你怎么做呢?我在哪里声明它?

我尝试使用shell脚本在几分钟后关闭我的计算机并使用java启动此脚本。

1 个答案:

答案 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