Esse problema já me incomoda há um tempo.
De vez em quando, preciso escrever um arquivo de script que deve executar sudo
comandos. Não necessariamente sei antecipadamente que executarei, pois sudo
tenho certeza de que há uma maneira de abrir uma interface gráfica agradável (como a que aparece ao instalar o software), mas como?
O man sudo
diz:
-A Normally, if sudo requires a password, it will read it from the current terminal. If the -A (askpass) option is specified, a (possibly
graphical) helper program is executed to read the user's password and output the password to the standard output. If the SUDO_ASKPASS
environment variable is set, it specifies the path to the helper program. Otherwise, the value specified by the askpass option in
sudoers(5) is used
Portanto, tenho certeza de que a solução reside nisso -A
e SUDO_ASKPASS
tupla, no entanto, consegui encontrar o que colocar neles.
gtksudo
oukdesudo
. Não sei o que há no lado do OS-X, mas presumo que você esteja procurando algo nesse sentido.Respostas:
O OS X não tem uma maneira totalmente limpa de fazer isso, mas existem algumas maneiras de falsificá-lo. Primeiro, o AppleScript tem uma boa maneira de fazer coisas sudo-ish com base em uma autenticação gráfica, e você pode usar isso:
Você também pode usar esse mecanismo para definir o carimbo de data / hora do sudo e, em seguida, usar o sudo regular (dentro da janela de tempo limite de 5 minutos) para fazer o seguinte:
Por fim, você pode usar o AppleScript para solicitar uma senha e passar para o sudo:
fonte
O OS X não vem com um front-end gráfico para o sudo, mas você encontrará o cocoasudo ou o macsudo útil.
fonte