¿Cómo hacer un script para cerrar sesión mientras la pantalla está bloqueada?

1

Quiero cerrar la sesión de un usuario a través de un script de shell, después de un retraso. Sin embargo, hay algunos otros problemas:

  • El usuario no tiene administrador y / o root.
  • El cierre de sesión debe completarse incluso si la pantalla está bloqueada.

Actualmente, estoy usando los siguientes comandos de shell para cerrar sesión:

osascript -e 'tell application "System Events" to log out'
osascript -e 'tell application "System Events" to keystroke return'

Esto funciona bien si la pantalla está activa, pero si la pantalla está bloqueada, falla, porque depende de activar una ventana y luego disparar una tecla Intro. Como recordatorio, las técnicas como matar la ventana de inicio de sesión fallan porque requieren root.

No estoy convencido de que sea posible; Cualquier idea será altamente apreciada.

uint128_t
fuente
¿Cuándo quieres activar el cierre de sesión? ¿Después de inactividad o bajo demanda?
Graham Miln

Respuestas:

1

¿Puedes obtener eventos del sistema para hacer Shift-Option-Command-q ?? algo así como ... (No sé la sintaxis exacta)

'tell application "System Events" to keystroke q with command down option down shift down'
Juan
fuente
No creo que funcione, por la misma razón que el otro truco no funciona: requiere un retorno de carro, que no sucederá cuando la pantalla esté bloqueada.
uint128_t
Este método abreviado de teclado no requiere que el usuario ingrese return; automáticamente cierra la sesión sin ninguna interacción adicional. Pero no sé si funcionará como un script ejecutado mientras el protector de pantalla está activo y bloqueado.
John