No saber la contraseña complica las cosas, pero tal vez la solución es: ¿ es posible borrar temporalmente la contraseña de un usuario? (Y luego restablecerlo a lo que era antes).
Como un inicio:
Primero, obtenga la ventana de inicio de sesión para mostrar. Simplemente cierre la sesión del usuario actual, use el cambio rápido de usuario o use SSH:
cd "/ System / Library / CoreServices / Menu Extras / User.menu / Contents / Resources /"
sudo ./CGSession -suspend
O, para cambiar a un usuario específico de inmediato, lo que probablemente mostrará la ventana de inicio de sesión (esto de repente ya no funciona en mi 10.5 Leopard):
sudo ./CGSession -switchToUserID 501
Lo que se muestra ahora depende un poco de las Preferencias del sistema, pero supongamos que son los iconos de los usuarios y sus nombres. Para activar un nombre, tendríamos que escribir las primeras letras. Luego, después de Volver, se muestra el mensaje de contraseña. Alternativamente, uno puede seleccionar cualquier nombre (como presionar la flecha hacia abajo) y luego presionar Opción-Retorno para que se le solicite cualquier nombre de usuario y su contraseña. No sé cómo se puede saber qué pantalla se muestra, pero guardemos eso para más tarde ...
Entonces, para seleccionar el primer nombre de usuario (aleatorio) y presionar Opción-Retorno, escriba un nombre de usuario específico, presione Retorno y escriba la contraseña:
sudo osascript -e 'tell app "Eventos del sistema"
código clave 125
pulsación de tecla usando la opción hacia abajo
pulsación de tecla "el nombre de usuario"
retraso 1.0
tecla de retorno
retraso 1.0
pulsación de tecla "la contraseña"
retraso 1.0
tecla de retorno
fin decir '
Lo anterior muestra algún error, que por lo que puedo decir no limita el uso:
osascript [285]: 3891612: (connectAndCheck) Las aplicaciones no confiables no son
permitido conectarse o iniciar Windows Server antes de iniciar sesión.
_RegisterApplication (), NO SE PUEDE establecer la conexión predeterminada a
WindowServer, _CGSDefaultConnection () es NULL.
Alternativamente, use la secuencia de comandos específica del idioma de " Ejecutar la ventana de inicio de sesión a través del Escritorio remoto de Apple " (tal vez algún día los comentarios en ese sitio muestren una mejor solución):
tell proceso "SecurityAgent"
establecer el valor del campo de texto 1 del grupo 1 de la ventana 1 en "el nombre de usuario"
establecer el valor del campo de texto 2 del grupo 1 de la ventana 1 a "la contraseña"
final decir
haga clic en el botón "Iniciar sesión" de la ventana 1 del proceso de solicitud "SecurityAgent"
Pero el problema principal es: esto todavía necesita la contraseña . Sin embargo: obviamente, no se necesita contraseña cuando un usuario tiene una contraseña en blanco. De hecho, para contraseñas en blanco, solo hacer clic en el icono de un usuario es todo lo que se necesita. Entonces, si el envío de pulsaciones de teclas usando AppleScript es aceptable, entonces tal vez "todo" lo que queda por resolver:
¿Es posible borrar temporalmente la contraseña de un usuario para permitir iniciar (o reanudar) la sesión sin saber esa contraseña ...?
¿Se puede hacer que el AppleScript sea a prueba de errores? Me gusta:
- ¿Cómo saber si la ventana de inicio de sesión está visible? (tal vez
stat -f%Su /dev/console
pueda ayudar, ya que eso cederoot
mientras se muestra la ventana de inicio de sesión)
- Como decir qué ventana de inicio de sesión se muestra? (Como: ¿uno que muestre iconos y nombres de inicio de sesión, o una lista desplegable, o tal vez solo una solicitud de contraseña si alguien seleccionó cambiar a un usuario específico?)
- Deshágase de los retrasos.
- ¿Qué pasa con ese mensaje de error?
(Una nota para la prueba: cuando se usa Compartir pantalla, parece que establecer la preferencia Al controlar las computadoras: Cifrar contraseñas y pulsaciones de teclas también conserva la conexión cuando se muestra la ventana de inicio de sesión, o después de que un usuario haya iniciado sesión correctamente. Cuando se utiliza Cifrar toda la red datos, entonces mi Mac necesita restablecer la conexión de pantalla compartida cada vez que se muestra un inicio de sesión o se cambia un usuario).