¿Por qué recibo un error de "dudosa propiedad del file" cuando el Agente de ejecución ejecuta mi file .plist?

Tengo un Launch Agent configurado para ejecutar un file .plist, por ejemplo: /Library/LaunchAgent/foo.plist . Dentro de esta .plist, está configurado para ejecutarse durante LoginWindow y Aqua .

Cuando bash iniciar mi computadora y acceder a la pantalla de inicio de session, este plist debería ejecutarse, pero en su lugar da el siguiente error (en la console):

launchctl: propiedad dudosa en el file (omisión): /Library/LaunchAgents/foo.plist

Cuando bash iniciar session en una count que no es de administrador, proporciona exactamente el mismo post de error. Cuando bash iniciar session con una count de administrador, funciona bien.

Seré sincero, no sé mucho sobre los privilegios y permissions de Mac OS X.

Para crear el file, lo abrí en emacs , con sudo en la count de administrador (por ejemplo, usando el command su ya que la otra count no tiene privilegios sudo) y luego lo guardé.

¿Qué count necesito usar para crear el file para que funcione para todos los usuarios?
¿Debo usar el command sudo?
¿Debo cambiar los permissions del file (por ejemplo, usar chmod )?
¿Existe una manera fácil de tomar un file existente y cambiar su propiedad en lugar de tener que volver a crear el file?
¿Podría alguien explicar por qué ocurre este error?

5 Solutions collect form web for “¿Por qué recibo un error de "dudosa propiedad del file" cuando el Agente de ejecución ejecuta mi file .plist?”

Si un plist es propiedad de root y puede escribirlo un usuario que no sea root, se trata de un problema de security.

Puede cambiar el propietario a la raíz con sudo chown root <filename> y cambiar los permissions con sudo chmod 644 <filename> (4 para acceso de lectura, 2 para acceso de escritura, 1 para acceso de ejecución, sumdo. El primer número es para el propietario, el segundo para el grupo, el tercero para todos).

De la descripción de la página de manual de launchctl (1) del subcommand de load :

Tenga en count que los files de configuration por usuario (LaunchAgents) deben ser propiedad del usuario que los carga. Todos los daemons de todo el sistema (LaunchDaemons) deben ser propiedad de root. Los files de configuration no deben ser de escritura de grupo o mundial. Estas restricciones existen por razones de security, ya que permitir la escritura de un file de configuration de lanzamiento permite especificar qué ejecutable se ejecutará.

launchctl tiene varios posts " Dudosos …". El código de lanzamiento para 10.6.7 (por ejemplo) tiene tres de esos posts en su launchctl.c (ver la function 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 posts, un nombre de ruta debe ser (# 3) un file o directory regular 1 (o un enlace simbólico a uno) que sea (# 1) propiedad de root o del usuario que invoca y (# 2) no "grupo" o "otro "Escribible (es decir, chmod go-w ).

1 No hay canalizaciones con nombre, nodos de dispositivos especiales de bloque / carácter, sockets de dominio local, etc.


Su file probablemente sea propiedad del usuario administrador ya que dice que no recibe el post cuando inicia session como ese usuario (el nombre de ruta es propiedad del usuario que invoca en ese caso).
Para que la ruta de acceso funcione para otros usuarios, debe ser propiedad de root.

Para arreglar esto, haz:

 sudo chown root /Library/LaunchAgent/foo.plist 

Gracias por la respuesta (cambiar de propietario a raíz): eso es todo lo que necesitaba.

Para hacer esto un poco más que un post de "yo también" … Llegué aquí por una ruta enrevesada: estaba obteniendo "Esta API solo puede ser utilizada por un process que se ejecuta dentro de una session Aqua" para los errores de un launchdaemon. La búsqueda de una respuesta a eso me llevó a la nota técnica de Apple sobre daemons y agentes que explicaba cómo resolver el error 'Aqua session', pero eso me dejó con problemas de 'dudosa propiedad'. Así es como llegué aquí, donde se resolvió mi problema final.

Tal vez al agregar todo eso a esta discusión, algún motor de búsqueda vincule esta página a uno de los problemas precursores, salvando a algún futuro aventurero en algún momento.

para files en ~ / Library / LaunchAgent propiedad del usuario y no root no sudo, si lo hace tendrá que cambiar la propiedad ya que la está cargando desde el usuario raíz

Esto es lo que sucede cuando las personas no saben cómo funciona sudo . Para deshabilitar los services que están en files propiedad de su usuario, simplemente llame a launchtl sin sudo .

  • No se puede escribir en ~ / Library, aunque los permissions se vean bien
  • No se pueden establecer los permissions en el volumen de Parallels
  • Eclipse STS re crea carpetas cada vez que se abre, puede deberse a permissions de files
  • ¿Sierra automaticamente actualiza las ACL de files y directorys obsoletos?
  • Problema de permissions al copyr files a través de SMB al server en OS X 10.9 Mavericks
  • No se pueden save files para compartir SMB de Windows
  • Cómo restablecer los permissions pnetworkingeterminados
  • Utilice las herramientas de administración del server de Apple para forzar la inheritance de permissions
  • OSX recuperando la propiedad después del command bad chown
  • ¿Problema de security de almacenamiento de objects compartidos locales Flash?
  • ¿Por qué el file .app extraído aparece en Finder 3.1 Mb y en bash solo 102 bytes?
  • Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).