esperando que alguien pueda ayudar con esto. Estoy tratando de escribir un script de terminal automatizador en Mac OS Catalina que apagará WiFi, desactivará la configuración automática de fecha y hora, y configurará mi Mac a una fecha y hora de sistema específicas. Realmente no tengo experiencia en programación, pero lo que tengo hasta ahora funciona para apagar el wifi y cambiar la fecha y la hora del sistema... pero el script no sale en Automator... simplemente sigue girando. No estoy seguro de cómo hacer que el comando Sudo -S salga una vez que establece la fecha y la hora del sistema. Esto es lo que tengo hasta ahora:
networksetup -setairportpower en0 off
echo "password" | sudo -S date 0101000120
Así que esto apagará wifi y pasará mi contraseña (también puedo hacerlo a través de un cuadro de diálogo, pero ese no es mi problema) y establecerá la fecha del sistema... luego la rueda automática simplemente gira...
Muchas gracias por leer y aprecio mucho cualquier ayuda.
EDITAR: actualmente reescribió la tarea del automatizador para ejecutar el comando de terminal, solicite una contraseña y luego pásela:
networksetup -setairportpower en0 off
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 date 0101000120
Todavía gira la rueda en un bucle infinito al final, pero puedo hacer clic y forzar la parada. ¡Alguien sabe una manera de hacer que deje de apreciarlo!
Podría hacer que esto funcione canalizando la contraseña a sudo desde un archivo en lugar de usar echo:
sudo -S date 0101000120 < ~/passwd.txt
Sin embargo, no estoy seguro de qué implicaciones de seguridad tiene esto, pero se siente mal...
Si está buscando una solución rápida y sucia, entonces esto lo hará, sin embargo, según el comentario de nohillside, aquí hay algunas instrucciones para ejecutar comandos sudo sin requerir una contraseña . Estas sugerencias funcionan para mí en Mojave en iTerm2 y terminal.
passwd.txt
(o al archivo de Automator para el enfoque adoptado en la pregunta) puede iniciar sesión como Administrador después. Podría ser mejor usarlo visudo
para editar el archivo sudoers y permitir el acceso sudo sin contraseña al date
comando para el usuario específico.networksetup -setairportpower en0 off
pw="$(osascript -e 'Tell application "System Events" to display dialog "Password:" default answer "password" with hidden answer' -e 'text returned of result' 2>/dev/null)" && / echo "$pw" | sudo -S date 0101000120
Alano
echo
envía la salida a la consola. Una solicitud de contraseña está esperando entrada . El comando que estás buscando esexpect
. Sin embargo, apagar WiFi y cambiar la hora del sistema es un flujo de trabajo bastante extraño. ¿Qué está tratando de lograr?rhk118
rhk118
Alano
rhk118
Mockman