Tengo un plist en la carpeta / Library / LaunchAgent (esto debería ejecutarse como "usuario registrado", si entiendo correctamente pero parece estar ejecutándose como root ). Lanza un script .sh bash.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.user.uloginscript</string>
<key>Program</key>
<string>/Library/TestArea/netcall.sh</string>
</dict>
</plist>
El script, para solucionar problemas, contiene las siguientes líneas:
#!/bin/bash
curUser=$(id -u -n)
osascript -e 'tell app "Finder" to display dialog "'$curUser'"'
O
#!/bin/bash
curUser=$(USER)
osascript -e 'tell app "Finder" to display dialog "'$curUser'"'
El resultado del cuadro de mensaje es siempre:
raíz
Esto significa que cualquier secuencia de comandos que estoy tratando de hacer tiene problemas. ¿Alguien puede arrojar alguna luz sobre por qué sucede esto? El script se ejecuta en cada inicio de sesión, se ejecuta antes de que aparezca el escritorio del usuario (el mensaje aparece en la pantalla de inicio de sesión).
Curiosamente, si uso el siguiente código:
#!/bin/bash
osascript -e 'tell app "Finder" to display dialog "'$1'"'
Devuelve el nombre de usuario correcto. Parece que el script se ejecuta como root, pero ha pasado el parámetro del usuario que ha iniciado sesión (tenga en cuenta que el plist no tiene parámetros).
Ejecutando Mavericks 10.9.5