Como configurar uma variável de ambiente SUDO_ASKPASS?

O que significa configurar uma variável de ambiente SUDO_ASKPASS? Como você faz isso? Onde eu declaro isso?

Eu estou tentando usar um script de shell para desligar meu computador após alguns minutos e iniciar este script com java.

Então, não tenho certeza se usaria $SUDO_ASKPASS para isso. Basicamente, o valor de $SUDO_ASKPASS é ser um executável que irá cuspir sua senha para fora quando for invocada. Então, se sua senha era ‘foo’, você poderia escrever um script de shell como:

 #!/bin/bash echo 'foo' 

e coloque-o em ~/bin/pw.sh Então você definiria a variável de ambiente e executaria o comando da seguinte forma:

 SUDO_ASKPASS=${HOME}/bin/pw.sh sudo shutdown -h now 

esse exemplo assume que você está em Darwin; shutdown se comporta de maneira diferente em sistemas operacionais diferentes.

Uma maneira mais inteligente de fazer isso (e mais segura) é usar o argumento NOPASSWD em /etc/sudoers . Nós adicionaríamos uma linha como esta:

 jane ALL=NOPASSWD: /sbin/shutdown 

Isso novamente pressupõe que você está em um Mac. E o seu nome é Jane. Mude isso. Desta forma, o sudo não pedirá uma senha quando você emitir o comando /sbin/shutdown . O comando para editar adequadamente os sudoers é visudo .