2012-09-26 280 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