0 votes

Comment trouver le vrai chemin d'un fichier

Je tente d'accéder à un fichier sur mon MacBook Pro via une application web exécutée sur Tomcat dans Eclipse (localhost). Chaque fois que j'essaie d'accéder au fichier, je reçois l'exception IO suivante :

Exception : /private/var/appname/app_config.txt (Fichier ou dossier introuvable)

Ce fichier existe bel et bien et lorsque j'utilise Apple+I, la fenêtre d'informations du fichier donne cet emplacement :

/private/var/appname

Alors pourquoi l'application web reçoit-elle l'exception (Fichier ou dossier introuvable) ? Comment puis-je obtenir le chemin réel si la fenêtre d'informations du fichier n'est pas valide via l'application web ?

MODIFIER

Les autorisations sur le fichier en question sont :

-rw-r--r--

où le propriétaire est le contexte utilisateur sous lequel s'exécute l'application web, qui est déterminé en entrant la commande suivante dans le shell :

ps axu -w

Les autorisations sur le répertoire appname sont les suivantes :

drwxr-x---

où, une fois encore, le propriétaire est le contexte utilisateur sous lequel s'exécute l'application web.

Et enfin, le répertoire var a les autorisations suivantes :

drwxr-xr-x

avec root comme propriétaire.

description de l'image

De plus, en enlevant private du chemin, le même exception se produit, sans le private dans le chemin :

Exception : /var/appname/app_config.txt (Fichier ou dossier introuvable)

1voto

James Marshall Points 528

Quelle identité d'utilisateur le Tomcat / Apache application est-il en train d'exécuter en tant que ? Alors que vous pouvez lire le fichier avec votre compte, si le serveur d'application s'exécute en tant qu'utilisateur aux droits limités ou dans un environnement chroot'd, vous ne pourrez pas voir le fichier. Découvrez le compte utilisateur sous lequel il s'exécute et essayez de vous suer à ce compte puis voyez si vous pouvez lire le fichier.

0voto

DOK Points 21175

La première chose que je vérifierais est que Tomcat ou Eclipse ou tout autre outil avec lequel vous essayez d'accéder au fichier dispose des droits suffisants pour l'opération. Il n'est pas rare que les applications signalent "fichier introuvable" quand ce qu'elles essaient de dire est "je ne peux pas accéder à la chose"

Ouvrez Terminal, faites

cd /private/var/appname

et ensuite

ls -al

et voyez qui en est propriétaire et quel est le mode indiqué par le fichier, puis agissez en conséquence.

Étant donné que /private/var/appname n'est pas lisible par tout le monde, j'ajouterais cela aux autorisations et verrais si cela fait une différence.

chmod a+r /private/var/appname

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