$file = fopen

despre limbajul de programare PHP

$file = fopen

Mesaj necititde beny » Lun 26 Iul 2010 1:52 pm

Am o masina F13 cu Apache pe ea din distributie.Am un php:/var/www/html/../fis.php care vrea sa deschida un fisier cu $file = fopen("cale_fis","r").
Daca fisierul care vreau sa il deschid cu fopen se afla sub /var/www/html/... atunci reusesc sa fac fopen dar eu vreau sa deschid un fisier care nu se afla sub /var/www/html/....Vreau sa deschid un fisier de oriunde din sistemul de fisiere. :D
Stie cineva cum as putea sa fac?
Am incercat sa configurez Apache-ul cu
<Directory> si <Files> dar nu prea imi iese. Nu deschide decat fis. din subdirectoarele de sub /var/www/html!
Help! :D
beny
 
Mesaje: 452
Membru din: Lun 15 Mar 2004 3:00 am

Re: $file = fopen

Mesaj necititde Agkelos » Lun 26 Iul 2010 4:17 pm

Ce mesaj de eroare primesti?

Fa un phpinfo() si vezi ce zice la open_basedir :)
Avatar utilizator
Agkelos
 
Mesaje: 59
Membru din: Vin 30 Ian 2009 3:00 am
Localitate: Cluj

Re: $file = fopen

Mesaj necititde beny » Lun 26 Iul 2010 5:29 pm

$file = fopen("/cale_fis/FILE", "r") or exit("BENYUnable to open file!");
Mesajul este: BENYUnable to open file!
Am incercat si cu ln -s target n_link si tot nu vrea sa imi deschida. :D
beny
 
Mesaje: 452
Membru din: Lun 15 Mar 2004 3:00 am

Re: $file = fopen

Mesaj necititde Agkelos » Lun 26 Iul 2010 6:00 pm

1. Ai verificat open_basedir?
2. Userul sub care ruleaza serverul web, are dreptul sa citeasca acel fisier?
Avatar utilizator
Agkelos
 
Mesaje: 59
Membru din: Vin 30 Ian 2009 3:00 am
Localitate: Cluj

Re: $file = fopen

Mesaj necititde beny » Lun 26 Iul 2010 6:04 pm

Fisierul pe care vreau sa il citesc are drept de citire pentru toata lumea, il poate citi orice user din SO.
Nu stiu sa verific base_dir.
Cum as putea sa verific?
beny
 
Mesaje: 452
Membru din: Lun 15 Mar 2004 3:00 am

Re: $file = fopen

Mesaj necititde beny » Lun 26 Iul 2010 6:05 pm

Scuze, open_basedir. :D
beny
 
Mesaje: 452
Membru din: Lun 15 Mar 2004 3:00 am

Re: $file = fopen

Mesaj necititde beny » Lun 26 Iul 2010 6:14 pm

M-am uitat in /etc/php.ini si acolo nu e nimic setat explicit:
;open_basedir =
adica e comentariu din cate inteleg eu.
Trebuie sa setez variabila aici? :D
beny
 
Mesaje: 452
Membru din: Lun 15 Mar 2004 3:00 am

Re: $file = fopen

Mesaj necititde Agkelos » Mar 27 Iul 2010 12:40 am

Lasa-l asa. Daca nu e setat nimic, e bine.

Referitor la fisier, stii cu ce user e interpretat PHP-ul? Presupun ca e nobody, dar verifica si tu sa fii sigur :)

Dupa ce stii userul, da comanda asta:
Cod: Selectaţi tot
su -m nobody -c /bin/bash


Ar trebui sa fii nobody acum, deci poti verifica daca nobody are acces - e posibil sa ai drept de citire peste tot, dar sa fie un director care sa nu permita traversarea. Daca esti nobody, deschide fisierul cu un editor de texte si vezi daca te lasa :)
Avatar utilizator
Agkelos
 
Mesaje: 59
Membru din: Vin 30 Ian 2009 3:00 am
Localitate: Cluj

Re: $file = fopen

Mesaj necititde beny » Mie 28 Iul 2010 11:08 am

Setarile din fisierul de configurare al serverului Apache nu conteaza?
beny
 
Mesaje: 452
Membru din: Lun 15 Mar 2004 3:00 am

Re: $file = fopen

Mesaj necititde Agkelos » Mie 28 Iul 2010 12:07 pm

beny scrie:Setarile din fisierul de configurare al serverului Apache nu conteaza?

Daca modificai din VirtualHost valoarea pentru open_basedir presupun ca stiai :)
Avatar utilizator
Agkelos
 
Mesaje: 59
Membru din: Vin 30 Ian 2009 3:00 am
Localitate: Cluj


Înapoi la PHP

Cine este conectat

Utilizatorii ce navighează pe acest forum: Niciun utilizator înregistrat şi 1 vizitator

cron