Pourquoi suis-je recevoir une erreur lorsque l'agent de lancement « propriété douteuse de fichier » va mon fichier .plist?

apple.stackexchange https://apple.stackexchange.com/questions/3250

Question

J'ai un agent de lancement configuré pour exécuter un fichier .plist par exemple: /Library/LaunchAgent/foo.plist. Dans ce .plist, il est configuré pour fonctionner pendant LoginWindow et Aqua.

Lorsque je tente de lancer mon ordinateur et accéder à l'écran de connexion, ce plist devrait fonctionner, mais donne lieu l'erreur suivante (dans la console):

  

launchctl: la propriété Dubious dans le dossier (sauter): /Library/LaunchAgents/foo.plist

Quand je tente de connexion à un compte non-admin, il donne le message d'erreur exactement le même. Lorsque je tente de connexion avec un compte administrateur, il fonctionne très bien.

Je vais être honnête, je ne sais pas beaucoup sur les privilèges Mac OS X et les autorisations.

Pour créer le fichier, je l'ai ouvert en emacs, avec sudo sur le compte d'administration (par exemple en utilisant la commande su depuis l'autre compte ne dispose pas des privilèges sudo) puis enregistré.

Quel compte dois-je utiliser pour créer le fichier pour qu'il fonctionne pour tous les utilisateurs?
Ai-je besoin d'utiliser la commande sudo?
Ai-je besoin de modifier les autorisations de fichiers (par exemple l'utilisation chmod)?
Est-il un moyen facile de prendre un fichier existant et modifier sa propriété au lieu d'avoir à recréer le fichier?
Quelqu'un pourrait-il s'il vous plaît expliquer pourquoi cette erreur se produit?

Était-ce utile?

La solution

Si un plist appartient à root et inscriptible par un utilisateur autre que root, qui est un problème de sécurité.

Vous pouvez changer le propriétaire à la racine avec sudo chown root <filename> et changer les permissions avec sudo chmod 644 <filename> (4 pour un accès en lecture, 2 pour l'accès en écriture, 1 pour exécuter l'accès, a ajouté le haut. Le premier numéro est pour le propriétaire, le second pour la groupe, le troisième pour tout le monde.)

Autres conseils

De launchctl (1) manpage 's description de la load sous-commande:

  

Notez que les fichiers de configuration par utilisateur (LaunchAgents) doit                 appartenir à la charge de l'utilisateur eux. Tous les daemons l'échelle du système (LaunchDaemons) doivent appartenir à                 racine. Les fichiers de configuration ne doivent pas être groupe- ou inscriptible monde. Ces restrictions sont                 place pour des raisons de sécurité, en permettant la possibilité d'écrire dans un fichier de configuration launchd permet une                 de préciser qui sera lancé exécutable.

launchctl a plusieurs messages « ... » Dubious. launchd code 10.6.7 (par exemple) a trois de ces messages dans son launchctl.c (voir la fonction 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>

Pour éviter ces messages un chemin doit être (# 3) un fichier régulier ou un répertoire 1 (ou un lien symbolique vers un) qui est (# 1) appartenant à root ou l'utilisateur appelant et ( # 2) pas « groupe » ou « autre » inscriptible (c.-à-chmod go-w).

1 Aucun tuyau nommé, bloc / caractères nœuds de périphériques spéciaux, prises de domaine local, etc.


Votre fichier est probablement la propriété de l'utilisateur admin puisque vous dites que vous ne recevez pas le message lors de la connexion en tant que utilisateur (le chemin est la propriété de l'utilisateur appelant dans ce cas).
Pour faire fonctionner le chemin pour les autres utilisateurs, il devrait appartenir à root.

Pour organiser cela, faites:

sudo chown root /Library/LaunchAgent/foo.plist

Merci pour la réponse (changement de propriétaire à la racine) -. C'est tout ce que je besoin

Pour faire un peu plus d'un poste ... Je suis arrivé ici par un chemin alambiqué « moi aussi »: Je recevais « Cette API ne peut être utilisé par un processus en cours d'exécution dans une session Aqua » erreurs pour une launchdaemon . La recherche d'une réponse à cette question m'a amené au technote Apple et des agents daemons qui explique comment résoudre l'erreur « session Aqua », mais qui m'a laissé des questions de « propriété douteuse ». Voilà comment je suis arrivé ici, où ma dernière question a été résolue.

ajouter peut-être tout cela à cette discussion provoquera un certain moteur de recherche pour relier cette page à un des problèmes précurseurs, sauvant ainsi un futur aventurier un certain temps.

pour le fichier dans ~ / Library / LaunchAgent appartient à l'utilisateur et non root sudo Do not, si vous ne vous aurez à changer la propriété puisque vous le chargez de l'utilisateur root

est ce qui arrive quand les gens ne savent pas comment fonctionne sudo. Pour désactiver les services qui sont sur les fichiers appartenant à votre utilisateur tout appel launchtl sans sudo.

Licencié sous: CC-BY-SA avec attribution
Non affilié à apple.stackexchange
scroll top