0 votes

Pourquoi chunkwm échoue-t-il avec l'erreur "Permission refusée" pour le fichier .chunkwmrc ?

ashleyharvey@Themis:~$ ls -al .chunkwmrc
-rw------- 2 ashleyharvey staff 4.7K Apr  4 22:24 .chunkwmrc
ashleyharvey@Themis:~$ chunkwm
/bin/bash: /Users/ashleyharvey/.chunkwmrc: Permission denied

Ainsi, chunkwm s'exécute manifestement sous un uid différent du mien. Une façon de résoudre ce problème serait d'élargir les permissions : Je pourrais chmod 640 o chmod 644 Cependant, ma question est de savoir comment déterminer sous quel uid/gid un processus s'exécute afin de résoudre ce problème tout en maintenant un périmètre de sécurité aussi étroit que possible.

J'ai trouvé une réponse sur le site unix stackexchange qui concernait l'exécution de stat sur un processus, j'ai donc essayé quelque chose du genre $ (stat /proc/$$/) mais apparemment, à cause de la différence dans le noyau de MacOS, cela ne fonctionne pas. J'ai fini dans /dev, mais je n'ai trouvé que des fd pour l'entrée/sortie standard et un tas de choses spéciales, manifestement ce n'est pas là que vont les FD de processus.

EDIT2 :

Plus d'informations sur chunkwm :

ashleyharvey@Themis:~$ ls -al /usr/local/opt/chunkwm/bin/chunkwm` 
-r-xr-xr-x 1 ashleyharvey admin 207K Mar  7 21:55 /usr/local/opt/chunkwm/bin/chunkwm

ashleyharvey@Themis:~$ ps aux | grep chunkwm` 
ashleyharvey     15153   0.0  0.1  4375940  20508   ??  S    11:23pm   0:01.33 /usr/local/opt/chunkwm/bin/chunkwm

ashleyharvey@Themis:~$ type /usr/local/Cellar/chunkwm/0.4.8/bin/chunkwm
/usr/local/Cellar/chunkwm/0.4.8/bin/chunkwm is /usr/local/Cellar/chunkwm/0.4.8/bin/chunkwm

ashleyharvey@Themis:~$ file /usr/local/Cellar/chunkwm/0.4.8/bin/chunkwm
/usr/local/Cellar/chunkwm/0.4.8/bin/chunkwm: Mach-O 64-bit executable x86_64

3voto

Jose Chavez Points 645

Vous vous êtes accidentellement engagé sur une mauvaise voie en essayant de résoudre le problème. Le message d'erreur ne signifie pas que l'utilisateur n'a pas l'autorisation de lire le fichier .chunkwmrc - au lieu de cela, cela signifie que l'utilisateur n'a pas le droit d'accéder au fichier .chunkwmrc. exécuter le dossier.

Le fichier de configuration de chunkwm (.chunkwmrc) est en fait un script du shell qui est exécuté avec bash (dans votre cas). Il doit donc être exécutable.

Vous avez défini les autorisations de manière à ce qu'il ne soit pas exécutable, et c'est la raison pour laquelle il échoue. Vous devez exécuter la commande suivante :

chmod +x ~/.chunkwmrc

Cette opération active le bit exécutable, de sorte que vous êtes autorisé à exécuter le fichier.

Pour répondre à vos autres questions sur la détermination de l'uid actuel d'un processus, le moyen le plus simple est d'exécuter la commande suivante dans Terminal :

ps xau | grep chunkwm

Vous verrez le nom d'utilisateur (ou uid) dans la première colonne du résultat.

Le système de fichiers /proc est spécifique à Linux et n'existe pas dans MacOS (ni dans beaucoup d'autres systèmes d'exploitation). C'est pourquoi les commandes que vous avez trouvées concernant /proc ne fonctionnent pas pour vous.

Le répertoire /dev contient les nœuds de périphériques. MacOS ne crée pas de nœuds de périphériques pour chaque processus en cours d'exécution qui pourrait donner l'identifiant du processus en cours d'exécution. Ceci est similaire à d'autres systèmes d'exploitation tels que Linux, FreeBSD, etc. car ce n'est tout simplement pas la façon dont /dev est censé être utilisé.

Dans l'ensemble, n'oubliez pas que votre problème spécifique n'a rien à voir avec le changement d'uid, et qu'il n'y a donc aucune raison de rechercher les uid ou d'essayer de les empêcher d'être changés.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X