1 votos

¿Por qué volver mi LaunchAgent ROOT como usuario?

Tengo un plist en el /Biblioteca/LaunchAgent carpeta (debe ejecutar como "usuario registrado", si entiendo correctamente, pero parece ser que se ejecuta como root). Lanza una .sh script de 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>

La secuencia de comandos, para la solución de 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:

root

Esto significa que cualquier secuencia de comandos que estoy tratando de hacer tiene problemas. ¿Alguien puede arrojar alguna luz sobre por qué esto está ocurriendo. La secuencia de comandos se ejecuta en cada inicio de sesión, se ejecuta antes de que el usuario del escritorio aparece el mensaje aparece en la pantalla de inicio de sesión).

Curiosamente, si puedo usar 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 en el sistema (tenga en cuenta que el plist no tiene parámetros).

Ejecución De Los Mavericks 10.9.5

0voto

MrBeatnik Puntos 38

Un LoginHook estaba presente. Loginhooks ejecutar como root y estaba llamando el mismo archivo. El comando siguiente quita el gancho:

sudo defaults delete com.apple.loginwindow LoginHook

Gracias todos por su tiempo y disculpas por el ganso salvaje de la persecución. Yo sabía no era correcto.

-1voto

hjdm Puntos 18

Del hombre launchd.plist:

Nombre de usuario < cadena > Esta clave opcional especifica el usuario para ejecutar el trabajo. Esta clave sólo es aplicable cuando launchd corre como root.

Así que puede Agregar esta clave a su plist para especificar el usuario.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X