54 votos

¿Por qué tengo una "dudosa titularidad de archivo" error al Iniciar se ejecuta el Agente de mi .plist archivo?

Tengo un Lanzamiento Agente configurado para ejecutar un .plist archivo por ejemplo: /Library/LaunchAgent/foo.plist. Dentro de este .plist, está configurado para ejecutarse durante LoginWindow y Aqua.

Cuando intento lanzar mi equipo y llegar a la pantalla de inicio de sesión, esta plist debe ejecutar, pero en cambio da el siguiente error (en la consola):

launchctl: Dudosa titularidad en el archivo (saltar): /Library/LaunchAgents/foo.plist

Cuando intento de inicio de sesión para un usuario que no sea administrador de la cuenta, se le da el mismo mensaje de error. Cuando intento iniciar sesión con una cuenta de administrador, funciona bien.

Voy a ser honesto, no sé mucho acerca de Mac OS X permisos y privilegios.

Para crear el archivo, lo abrió en emacs, sudo sobre la cuenta de administrador (por ejemplo, mediante el uso de la su comando desde la otra cuenta no tiene privilegios sudo) y después lo guardó.

¿Qué cuenta debo utilizar para crear el archivo para que funcione para todos los usuarios?
Qué necesito para utilizar el comando sudo?
¿Es necesario cambiar los permisos de archivo (por ejemplo, el uso chmod)?
Hay una manera fácil de llevar un archivo existente y cambiar su propiedad en lugar de tener que volver a crear el archivo?
Podría alguien por favor explique por qué se produce este error?

51voto

steve_c Puntos 3887

Si un plist es propiedad de root y escribir por un usuario distinto de root, que es un problema de seguridad.

Usted puede cambiar el propietario a root con sudo chown root <filename>, y cambiar los permisos con sudo chmod 644 <filename> (4 para el acceso de lectura, 2 para el acceso de escritura, 1 para ejecutar el acceso, añadió. El primer número es para el propietario, el segundo para el grupo, el tercero en todo el mundo.)

14voto

Nip Puntos 362

Desde el launchctl(1) manual's descripción de la load subcomando:

Tenga en cuenta que por archivos de configuración de usuario (LaunchAgents) debe ser propiedad del usuario la carga de ellos. Todos en todo el sistema de demonios (LaunchDaemons) debe ser propiedad de de la root. Los archivos de configuración no debe ser de grupo o de escritura. Estas restricciones están en lugar por razones de seguridad, ya que permite writability a un launchd archivo de configuración permite una para especificar qué archivo ejecutable será lanzado.

launchctl tiene varios "Dudosa ..." mensajes. El launchd código para 10.6.7 (por ejemplo) tiene tres mensajes en su launchctl.c (ver la función path_goodness_check).

  1. Dubious permissions on file (skipping): <pathname>
  2. Dubious ownership on file (skipping): <pathname>
  3. Dubious path. Not a regular file or directory (skipping): <pathname>

Para evitar estos mensajes de una ruta de acceso debe ser (#3) regular de un archivo o directorio1 (o un enlace simbólico a uno) (#1) propiedad de la root o de la invocación de usuario y (#2) no "grupo" o "los otros" de escritura (es decir, chmod go-w).

1 No canalizaciones con nombre, bloquear/dispositivo especial de carácter nodos, local sockets de dominio, etc.


El archivo es, probablemente, de propiedad del usuario administrador ya que dicen que usted no recibe el mensaje al iniciar sesión como ese usuario (el nombre de la ruta es de titularidad de la invocación de usuario en ese caso).
Para hacer la ruta de trabajo para otros usuarios, debe ser propiedad de root.

Para arreglar esto, hacer:

sudo chown root /Library/LaunchAgent/foo.plist

1voto

n8gray Puntos 2923

Gracias por la respuesta (cambio de propietario a root) - que es todo lo que necesitaba.

Para hacer esto un poco más que un 'yo también' post... yo llegué aquí a través de un complicado camino: yo estaba "Esta API sólo puede ser utilizado por un proceso que se ejecuta dentro de una sesión de Aqua" errores para un launchdaemon. La búsqueda de una respuesta a la que me llevó a Apple de la nota técnica sobre los demonios y los agentes que explica cómo resolver el 'Aqua sesión de' error, pero que me dejó con " dudosa propiedad. Que cómo llegué aquí, donde mi último problema se ha resuelto.

Tal vez la adición de todos de que este debate va a causar algunos motor de búsqueda para enlace de esta página a uno de los precursores de problemas, ahorrando algunos futuro aventurero algún tiempo.

-2voto

user13456 Puntos 29

para el archivo en ~/Library/LaunchAgent propiedad del usuario y no como root no sudo, si usted tendrá que cambiar la propiedad desde que se carga desde el usuario root

-3voto

Jaime Soriano Puntos 188

Esto es lo que pasa cuando la gente no sabe cómo sudo obras. Deshabilitar los servicios que se encuentran en los ficheros titularidad de su usuario simplemente llame a launchtl sin sudo.

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