Ce este GID-ul PHP Safe Mode?

În conformitate cu Documentele pentru modul de siguranță PHP pe adresa safe_mode_gid:

În mod prestabilit, modul Safe (Safe Mode) verifică compararea UID la deschiderea fișierelor. Dacă doriți să relaxați acest lucru într-un comparat GID, atunci activați safe_mode_gid. Fie că utilizați UID (FALSE) sau GID (TRUE) verificând accesul la fișiere.

Pentru un script PHP care rulează pe un server web, care este diferența dintre verificarea UID (identificatorul utilizatorului) și verificarea GID (identificatorul grupului)?

0
fr hi bn

4 răspunsuri

Acest lucru vă va permite doar o mai mică flexibilitate în configurarea serverului dvs. web. Folosind safe_mode_gid, ar trebui să puteți rula procese individuale PHP/httpd pentru fiecare utilizator din sistemul dvs., dar să dați fiecărui proces posibilitatea de a citi unele fișiere partajate atâta timp cât toate acestea sunt difuzate ca același grup (GID) și fișierele partajate sunt deținute de acest grup.

0
adăugat

Modul de verificare UID în modul de siguranță este folosit pentru a împiedica accesul utilizatorilor la fișierele altor persoane. GID este folosit pentru a împiedica accesul GRUPULUI de utilizatori la alte fișiere GRUP.

0
adăugat

Cele mai multe răspunsuri nu sunt chiar adevărate sau detaliate ... Nu uitați că safe_mode verifică dacă proprietarul SCRIPT se potrivește cu proprietarul fișierului pe care doriți să-l accesați. Nu are nimic de a face cu utilizatorul httpd: grup.

De exemplu, httpd-ul dvs. ar putea rula ca apache: daemon , scriptul dvs. deținut de some_user: users și fișierul pe care doriți să îl scrieți some_other_user: users .

Dacă nu activați safe_mode_gid , scriptul nu va putea accesa fișierul deoarece utilizatorii nu se potrivesc.

Acesta este un fenomen comun când un script creează un dosar și apoi încearcă să creeze fișiere în interiorul acestui dosar.

Crearea dosar Reușește, deoarece dosarul părinte este deținut de același utilizator ca și script-ul creându-l (cel mai probabil, acesta a fost încărcat de „some_user“).

BUT, the created folder is now owned by the httpd user, let's say apache:daemon

Dacă safe_mode este activă, nu veți putea să creați un fișier în interiorul acestui folder deoarece proprietarul de script ( some_user ) nu se potrivește cu proprietarul dosarului apache ).

Chiar dacă activați safe_mode_gid , aceasta nu va funcționa deoarece grupul de script-uri este "utilizatori" în timp ce grupul de foldere este "daemon".

Cea mai bună soluție este să setați același grup pentru utilizatorii ftp și httpd. Nu uitați că trebuie să permiteți accesul la scriere pentru grupul din folderul "writeable" și acest lucru este mai puțin sigur deoarece, deoarece toți utilizatorii dvs. se află în același grup, un proces httpd poate accesa fișierele altor utilizatori de când activați < code> safe_mode_gid .

De fapt, combinați safe_mode_gid + open_basedir și setați casa utilizatorului ca valoare open_basedire pentru a evita acest lucru.

HTH

0
adăugat

De exemplu, numele de utilizator și grupul de servere web sunt apache: www ,

dacă setați verificarea UID, procesul PHP va avea acces numai la orice fișier deținut de utilizator apache . Deci, dacă aveți un alt server web care rulează pe sistemul dvs., de exemplu, tomcat cu numele de utilizator și grupul de tomcat: www , toate fișierele create de tomcat nu vor fi accesibile prin PHP, utilizatorul tomcat .

Dar dacă utilizați în schimb verificarea GID, fișierele create de procesul tomcat vor fi citite de procesul PHP deoarece aparțin aceluiași grup www

0
adăugat
PHP România, Moldova
PHP România, Moldova
173 participanți

Vorbim despre Yii, Laravel, Symphony, MySQL, PgSQL, WP, OpenCart... Pentru confort, opriți notificările. Parteneri: https://ciupacabra.com @js_ro @node_ro @python_ro @seo_ro @Romania_Bot Offtop: @holywars_ro Joburi: @php_job @Grupuri_IT