Shutdown "no tty present e nessun programma askpass specificato"?

1

Sto provando a eseguire uno script di spegnimento da remoto su più Mac. Il comando che uso per avviarlo su ssh è:

ssh ADMIN@mac123 'bash -s' sudo < ./documents/ShutdownUPTIME.sh

Ovviamente mi chiede una password sudo, che digito correttamente. L'unico messaggio dopo è: sudo: no tty present and no askpass program specified

Qualche idea su come posso risolvere questo problema? Il mio utente è sicuramente un super-utente

    
posta Gunter 13.12.2016 - 09:04
fonte

1 risposta

2

Il messaggio di errore appare quando provi ad eseguire un comando all'interno della tua chiamata bash con sudo e, sebbene l'utente ADMIN sul sistema di destinazione mac123 disponga delle autorizzazioni per eseguire comandi con sudo , l'opzione NOPASSWD non è specificato per questo particolare utente (in /etc/sudoers ).

Il sistema dovrebbe richiedere all'utente e attendere che la password venga fornita dalla tastiera, tuttavia poiché non è collegato alcun terminale, il prompt si bloccherà per sempre.

Come misura contro tale situazione, il sistema fallisce con il messaggio di errore che hai ottenuto.

Se hai avuto tempo per capire la mia risposta di ieri :

provided ADMIN has passwordless sudo permissions for shutdown or all commands on macxxx machine)

Non ti imbatterai in questo problema.

Devi modificare lo script:

...
if [ $DAYS_UP -ge ${MAX_UPDAYS} ];then
    echo Mac is going to shutdown 
    sudo shutdown -h now
else
...

Modifica il file sudoers su mac123 , in modo che contenga, ad esempio (deve corrispondere al comando nello script):

ADMIN ALL=(ALL) NOPASSWD: /sbin/shutdown -h now

Ricorda che devi eseguirlo utilizzando visudo , altrimenti potresti interrompere completamente il sistema.

In alternativa puoi usare la variabile di ambiente SUDO_ASKPASS e indirizzarla a uno script che fornisce la password (la seconda parte del messaggio di errore). Non consiglio questo metodo.

    
risposta data 13.12.2016 - 09:30
fonte

Leggi altre domande sui tag