PDA

Visualizza la versione completa : Scrittura/Lettura File Problematica


zamak
19-01-2005, 17:00
ciao a tutti,

abbiamo il seguente script:
/home/user/public_html/cgi-bin/script/prova.pl

che deve aprire (per Leggere o Scrivere) il seguente File:
/home/user/public_html/cgi-bin/script/db/info/dati_prova.data
con permessi 777 da db/ in poi incluso il file.

Facendo girare lo script da shell:

se uso l'intero path del file ho ERRORE
open(DATA,"</home/user/public_html/cgi-bin/script/db/info/dati_prova.data) || &error;

Se uso il path relativo FUNZIONA
open(DATA,"<db/info/dati_prova.data) || &error;

Siccome per altri motivi devo usare obbligatoriamente Path assoluti, vorrei sapere qual'è la causa del problema.

Chi ha delle ipotesi???

Grazie 1000 anticipatamente.

Mich_
19-01-2005, 17:54
Anzitutto non e` una buona cosa tenere i dati nella stessa dir degli eseguibili. Uno hacker, neanche troppo smaliziato riesce a leggere/scrivere il tuo file dati.

Comunque il path assoluto dei file in internet non e` necessariamente uguale al path interno della pagina (di solito non lo e`).
Uno script CGI vede il path assoluto della macchina - come lo vedi se dai il comando "pwd" (sotto linux) oppure il path che puoi visualizzare sulla barra del titolo della cartella (sotto windows), mentre i path che hai dato tu sono i path assoluti che vengono visti dal Web.

zamak
19-01-2005, 18:33
ciao Mich,

lo script indicato NON è fatto per essere eseguibile da http e deve girare solo da SHELL o CRON JOB ed ha i permessi di sola esecuzione per l'owner cioè 100

Ho un altro script che deve fare un lavoro simile e funziona perfettamente con quei path assoluti che sono esattamente quelli del file sulla macchina (Linux);

per questi motivi rimangono poche cause che possono produrre quel tipo di errore; cause che per altro io ignoro vista la mia lacunosissima conoscenza del sistema su cui lavoro.

Se hai altre ipotesi ti prego di farmelo sapere, e comunque grazie per la risposta,
ciao,

LordSaga640
19-01-2005, 21:42
Scusa la mia pignoleria, ma l'open che hai postato l'hai preso da copia incolla?


open(DATA,"<db/info/dati_prova.data) || &error;


perchè altrimenti è:


open(DATA,"<db/info/dati_prova.data") || &error;


Solo pignolerie

zamak
19-01-2005, 22:48
No Lord, ho commesso l'errore durante al trascrizione nel forum; comunque, con quell'errore lo script verrebbe direttamente abortito e non eseguito mentre io ottengo un errore esattamente all'apertura del file (la sub &error('Non posso aprire il File X'); mi permette di localizzare l'errore).

ciao,

zamak
19-01-2005, 23:55
Scusate... :dottò: ho sbagliato il path... (lo so... è meglio non commentare)

ciao

Loading