Error al usar 'sudo shutdown' en la máquina remota

3

Estoy apagando remotamente un grupo de Macs usando ssh para ejecutar el comando shutdown en cada una de ellas. He hecho la pregunta antes ( Shutdown "no tty el programa presente y no askpass pasó "? ) y lo hizo funcionar agregando ADMIN ALL=(ALL) NOPASSWD: /sbin/shutdown -h now a los archivos de sudoers como se recomienda.

Mientras tanto, dos de los Mac remotos se actualizaron a Sierra y yo nuevamente obtuve

sudo: no tty present and no askpass program specified

aunque la línea en el archivo sudoers todavía está allí.

¿Qué debo cambiar para que esto funcione con Sierra?

    
pregunta Gunter 19.12.2016 - 10:09

1 respuesta

0

Una solución adecuada para su secuencia de comandos de cierre remoto es la siguiente:

Script (por favor, ajuste el valor MAX_UPSEC, para propósitos de prueba usé un valor bajo):

#!/bin/bash
BOOT_TIME=$(sysctl -n kern.boottime | sed -e 's/.* sec = \([0-9]*\).*//')
CURR_TIME=$(date +%s)
MAX_UPSEC=300 #Seconds

SECS_UP=$(($CURR_TIME - $BOOT_TIME))
    if [ $SECS_UP -ge ${MAX_UPSEC} ];then
        echo "Mac is going to shutdown because it is already $SECS_UP seconds running"
        shutdown -h now
    else
        echo "No shutdown needed because the Mac is only $SECS_UP seconds up"
fi

Si ejecuta el script de apagado (suponiendo que el script se encuentra en ~ / bin / sh /) con el siguiente comando:

ssh admusr@host  'sudo bash -s' < /Users/admusr/bin/sh/ShutdownUPTIME.sh

las líneas sudoers apropiadas en los hosts remotos son entonces

root        ALL = (ALL) ALL
%admin      ALL = (ALL) ALL
admusr      ALL = (ALL) NOPASSWD: /bin/bash
    
respondido por el klanomath 19.12.2016 - 18:41

Lea otras preguntas en las etiquetas