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

3

Estoy apagando remotamente un montón de Mac utilizando sshpara ejecutar el shutdowncomando en cada uno de ellos. Ya hice la pregunta antes (¿ Apagado "no hay ningún programa y no se especificó el programa askpass"? ) Y lo puse a trabajar agregando ADMIN ALL=(ALL) NOPASSWD: /sbin/shutdown -h nowa los archivos sudoers como se recomienda.

Mientras tanto, dos de los Macs remotos se actualizaron a Sierra y nuevamente obtengo

sudo: no tty present and no askpass program specified

a pesar de que la línea en el archivo sudoers todavía está allí.

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

Gunter
fuente

Respuestas:

0

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

Script (ajuste el valor MAX_UPSEC, para fines de prueba utilicé un valor bajo):

#!/bin/bash
BOOT_TIME=$(sysctl -n kern.boottime | sed -e 's/.* sec = \([0-9]*\).*/\1/')
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 encuentre en ~ / bin / sh /) con el siguiente comando:

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

las líneas de sudoers adecuadas en los hosts remotos son entonces

root        ALL = (ALL) ALL
%admin      ALL = (ALL) ALL
admusr      ALL = (ALL) NOPASSWD: /bin/bash
klanomath
fuente