Estoy tratando de ejecutar un agente de lanzamiento al iniciar la sesión de un usuario, pero el script encapsulado por él requiere saber quién está iniciando la sesión. Anteriormente podía identificar al usuario que iniciaba la sesión comprobando el propietario de /dev/console, pero esto ya no funciona. El propietario de /dev/console es Root al iniciar la sesión de un usuario o más precisamente cuando el agente de lanzamiento se ejecuta ya que cambia al usuario después. ¿Existe algún lugar donde pueda encontrar el nombre de usuario de una persona que inicie sesión con el propósito de un agente de lanzamiento?
Respuesta
¿Demasiados anuncios?
klanomath
Puntos
19587
CurrentUser="$(env | grep LOGNAME | awk -F = '{print $2}')"
y $USER
utilizado en un script lanzado por un agente de lanzamiento en /Library/LaunchAgents ambos contienen el nombre de usuario del usuario que se conecta.
CurrentUser="$(users)"
contiene todo usuarios. Por lo tanto, el primer usuario será revelado, pero el inicio de sesión con un segundo usuario al mismo tiempo (por ejemplo, el cambio rápido de usuario) romperá el script.