Quale opzione dovrei dare al comando sudo per richiedere la password attraverso un'interfaccia grafica?

11

Questo problema mi ha disturbato per un po 'di tempo.

Ogni tanto, ho bisogno di scrivere un file di script che dovrebbe eseguire sudo comandi. Non necessariamente so in anticipo che eseguirò come sudo quindi sono sicuro che c'è un modo per aprire una bella interfaccia grafica (come quella che si apre quando si installa il software) ma come?

Il man sudo dice:

-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

Quindi sono abbastanza sicuro che la soluzione risieda in quella -A e SUDO_ASKPASS tuple tuttavia sono riuscito a trovare cosa inserire in quelle.

    
posta apouche 29.08.2011 - 15:21
fonte

2 risposte

17

OS X non ha un modo completamente pulito per farlo, ma ci sono alcuni modi per simularlo. Innanzitutto, AppleScript ha un buon modo per fare cose sudo-ish basate su un'autenticazione grafica, e puoi usare quello:

osascript -e "do shell script \"stufftorunasroot\" with administrator privileges"

Puoi anche usare quel meccanismo per impostare il timestamp sudo, e poi usare il normale sudo (all'interno della finestra di timeout di 5 minuti) per fare cose:

osascript -e "do shell script \"mkdir -p /var/db/sudo/$USER; touch /var/db/sudo/$USER\" with administrator privileges" && \
    sudo stufftorunasroot

Infine, puoi usare AppleScript per richiedere una password, quindi passare a sudo:

pw="$(osascript -e 'Tell application "System Events" to display dialog "Password:" default answer "" with hidden answer' -e 'text returned of result' 2>/dev/null)" && /
    echo "$pw" | sudo -S stufftorunasroot
    
risposta data 29.08.2011 - 18:07
fonte
0

OS X non ha un front-end grafico per sudo ma troverai cocoasudo o macsudo utile.

    
risposta data 29.08.2011 - 15:39
fonte

Leggi altre domande sui tag