Jump to content
php.lv forumi

mkdir & PHP Safe Mode


Kaklz

Recommended Posts

Veidojot bilžu galerijas, bieži vien gribas uztaisīt kaut kādu normālu struktūru, kā glabājas faili uz servera. Visvienkāršākais variants laikam ir glabāt informāciju par bildēm datubāzē, bet failu sistēmā glabāt pašus attēlus. Lai nodalītu vienas galerijas attēlus no citiem, katrai bilžu galerijai veidojam atsevišķu mapīti (ar PHP skriptu automātiski pie jaunas galerijas izveidošanas administrācijas rīkā).

 

Problēmas sākas momentā, kad servera administrators ir pamanījies ieslēgt Safe Mode, proti, PHP ar mkdir izveidotajām direktorijām uzliek Apache procesa UID un pēc tam vairs PHP skripti neko ar attiecīgo direktoriju nevar izdarīt, jo PHP skripta UID ir savādāks, nekā Apache UID.

 

Tad nu jautājums. Vai un kā ir iespējams šo problēmu apiet?. Varbūt stulbi izklausīsies, bet vai to kaut kā maģiski nevar apiet ar chown() un chgrp() funkcijām?

 

Teorētiski varētu visas bildes vienkārši mest vienā mapītē, taču tad rodas jautājums, vai nesāksies kaut kādas bremzes pie palielāka bilžu apjoma vienā direktorijā?

 

Pie reizes varbūt kāds arī varētu izskaidrot, kas Safe Mode ir tik īpašs, ko nevarētu panākt vienkārši mazliet vairāk piekonfigurējot parastu PHP?

 

Paldies!

Link to comment
Share on other sites

es sho problemu atrisinaaju shaadi:

 

Saakuma izveidoju kaudzi ar direktorijaam.

peec "koka" principa

 

1 lim :V - S = virietis sieviete

2 lim : d00, - d06 = nedeljas diena kad lietotaajs ir registreejies

3li: m00-m59 = minuute kad registreejies

 

taalaak pie lietotaaja registraacijas tiek panjemts dzimums un registraacijas

laiks no kura izskaitljo direktoriju prieksh katra lietotaaja

(dzimums+diena+minuute) dod:

piem. v/d03/m33

shis celsh tieknoglabaats baazee

saadi kopaa sanaak 840 direktorijas

 

P.S. es izveeleejos saadu daliijumu peec apsveruma ka:

katru nedeeljas dienu pieregistreesies apmeeram vienaads skaits lietotaaju,

taapat apmeram buus ar minuuteem - un vir un sievietes arii ir aptuveni vienaadi

 

taatad - lietotaji buus sadaliiti daudzmaz vienmeeriigi

Link to comment
Share on other sites

interesants piegājiens :)

13595[/snapback]

 

Un kas veinas - vismaz nebremzee :)

nu var jau daliit arii savaadaak :)

13598[/snapback]

 

"interesants" šajā gadījumā bija vairāk nevis ar ironiju, bet kā kompliments ;)

Link to comment
Share on other sites

par tam direktorijaam, ko saakumaa saaka paspriest ....

ja birektorijai uzliek chmod($dir,0777)

tad ar PHP safe_mode`ee arii neredz direktoriju?

13616[/snapback]

 

direktoriju redz, failus tajā izveidot arī var, bet tiesības mainīt ne :(((

man tā reāla problēma...

 

ir vēl tāda laba funkcija umask(), bet ar daudz nepalīdz.

 

PHP5 var ar skriptu pieslēgties caur ftp un tā nomainit tiesības...

Link to comment
Share on other sites

Bet vai nevar izveidot vienu direktoriju, kurai tiek klaat php un chmod butu 0777 un nosaukt to par sample. Tad kad bus nepiecieshama jauna galerijas direktorija, tad sho sampli kope tur, kur nepiecieshams un reneimo. Nesmu parbaudijis, bet domaju, ka UID paliks tads, kads tam bija pasha sakuma.

Link to comment
Share on other sites

ok. nedaudz novirzīšos no tēmas.

vienreiz jau šis bija apspriests, bet tā arī pie normāla risinājuma nenonācu.

 

kā tiek nodrošināta pieeja failiem lietotājiem kur ir ielogojušies (neielogotie lietotāji failus neredz). tb fiziski viņi atradīsies kaut kur failu sistēmā protams.

der arī .htaccess risinājumi (esmu izmisumā ;) ). NEDER risinājums tipa: echo $fails.

iemesli: lieli faili, script timeout. script timeout mainīt nemaz negribu.

Link to comment
Share on other sites

ja ar .htaccess - tad var skatīties uz basic authentification pusi

Require Valid User utml

neesmu noņemies, tā kā precīzāk nemācēšu teikt

 

manas idejas grozās ap: lietotājs logojas iekšā. viņam tiek a) uzģenerēts kaut kāds identifikātors B) iekš .htaccess tiek pierakstīts rewriterule uz šādu identifikatoru, bet ar allow from lietotāja ip only

 

resp. ja lietotājs ir no att. IP un ar pareizu identifikatoru, apache viņam/i noplūdina pareizo failu

Link to comment
Share on other sites

×
×
  • Create New...