Come trovare il vero percorso di un file

0

Sto tentando di accedere a un file sul mio MacBook Pro tramite un'app Web in esecuzione su Tomcat in Eclipse (localhost). Ogni volta che provo ad accedere al file, ricevo la seguente eccezione IO:

Exception:  /private/var/appname/app_config.txt (No such file or directory)

Questo file esiste e quando uso Apple+I la finestra di informazioni sul file fornisce questa posizione:

/private/var/appname

Quindi perché l'app Web ottiene l'eccezione (nessun file o directory)? Come ottengo il percorso reale se la finestra delle informazioni sul file non è valida tramite l'app Web?

Modifica

Le autorizzazioni sul file nelle domande sono:

-rw-r--r--

dove il proprietario è il contesto utente in cui viene eseguita l'app web, che viene determinata immettendo quanto segue nella shell:

ps axu -w

I permessi sulla directory appname sono come tali:

drwxr-x---   

dove ancora, il proprietario è il contesto utente in cui è in esecuzione l'app web.

E infine, la directory var ha le autorizzazioni:

drwxr-xr-x

con root come proprietario.

Inoltre, rimuovendo private dal percorso si ottiene la stessa identica eccezione, sans il private nel percorso:

Exception:  /var/appname/app_config.txt (No such file or directory)
    
posta Roy Hinkley 23.01.2014 - 21:40
fonte

2 risposte

1

Quale identità utente è in esecuzione l'applicazione Tomcat / Apache? Mentre puoi leggere il file con il tuo account, se il server delle applicazioni è in esecuzione come utente con diritti limitati o in un ambiente chroot, non sarai in grado di vedere il file. Scopri l'account utente in cui è in esecuzione e prova su ing a quell'account, quindi verifica se puoi leggere il file.

    
risposta data 24.01.2014 - 23:56
fonte
0

La prima cosa che controllerei è che Tomcat o Eclipse o qualunque cosa stia tentando di accedere al file con diritti sufficienti per l'operazione. Non è insolito che le applicazioni segnalino "file non trovato" quando quello che stanno cercando di dire è "Non riesco ad accedere alla cosa"

Apri terminale, fai

cd /private/var/appname

e poi

ls -al

e vedi chi lo possiede e in quale modalità viene segnalato il file, quindi prendilo da lì.

Dato che / private / var / appname non è leggibile da tutti, vorrei aggiungerlo alle autorizzazioni e vedere se questo fa la differenza.

chmod a+r /private/var/appname 
    
risposta data 24.01.2014 - 00:00
fonte

Leggi altre domande sui tag