PHP सुरक्षित मोड जीआईडी ​​क्या है?

Safe_mode_gid पर PHP सुरक्षित मोड डॉक्स के अनुसार:

डिफ़ॉल्ट रूप से, फ़ाइलों को खोलते समय सुरक्षित मोड एक यूआईडी तुलना की जांच करता है। यदि आप इसे एक जीआईडी ​​तुलना में आराम करना चाहते हैं, तो safe_mode_gid चालू करें। फ़ाइल एक्सेस पर यूआईडी (गलत) या जीआईडी ​​(TRUE) की जांच करना है या नहीं।

एक वेब सर्वर पर चल रही एक PHP स्क्रिप्ट के लिए, यूआईडी (उपयोगकर्ता पहचानकर्ता) जांच और एक जीआईडी ​​(समूह पहचानकर्ता) जांच के बीच क्या अंतर है?

0
ro fr bn

4 उत्तर

इससे आपको अपने वेब सर्वर सेटअप में थोड़ा अधिक लचीलापन मिल जाएगा। Safe_mode_gid का उपयोग करके, आप अपने सिस्टम पर प्रत्येक उपयोगकर्ता के लिए अलग-अलग PHP/httpd प्रक्रियाओं को चलाने में सक्षम होना चाहिए, लेकिन प्रत्येक प्रक्रिया को कुछ साझा फ़ाइलों को पढ़ने की क्षमता दें जब तक वे सभी एक ही समूह (जीआईडी) और साझा फ़ाइलों के रूप में चल रहे हों इस समूह के स्वामित्व में हैं।

0
जोड़ा

उपयोगकर्ताओं को अन्य लोगों की फ़ाइलों तक पहुंचने से रोकने के लिए सुरक्षित मोड यूआईडी चेक का उपयोग किया जाता है। जीआईडी ​​का उपयोग अन्य ग्रुप फ़ाइलों तक पहुंचने से उपयोगकर्ताओं के समूह को रोकने के लिए किया जाता है।

0
जोड़ा

अधिकांश उत्तर बिल्कुल सही या विस्तृत नहीं होते हैं ... safe_mode को न भूलें यदि SCRIPT का स्वामी उस फ़ाइल के स्वामी से मेल खाता है जिसे आप एक्सेस करना चाहते हैं। Httpd उपयोगकर्ता: समूह के साथ इसका कोई लेना-देना नहीं है।

उदाहरण के लिए, आपका httpd apache: daemon के रूप में चलाया जा सकता है, आपकी स्क्रिप्ट some_user: users और जिस फ़ाइल को आप लिखना चाहते हैं some_other_user: users

यदि आप safe_mode_gid को सक्रिय नहीं करते हैं, तो स्क्रिप्ट फ़ाइल तक पहुंच नहीं पाएगी क्योंकि उपयोगकर्ता मेल नहीं खाते हैं।

यह एक आम घटना है जब एक स्क्रिप्ट एक फ़ोल्डर बनाता है और फिर इस फ़ोल्डर के अंदर फ़ाइलों को बनाने की कोशिश करता है।

फ़ोल्डर निर्माण सफल होता है क्योंकि मूल फ़ोल्डर का स्वामित्व उसी उपयोगकर्ता द्वारा किया जाता है जैसे स्क्रिप्ट इसे बनाते हैं (अधिकतर, इसे "some_user" द्वारा अपलोड किया गया था)।

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

यदि safe_mode सक्रिय है, तो आप इस फ़ोल्डर के अंदर एक फ़ाइल बनाने में सक्षम नहीं होंगे क्योंकि स्क्रिप्ट स्वामी ( some_user ) फ़ोल्डर स्वामी से मेल नहीं खाता है ( अपाचे )।

यहां तक ​​कि यदि आप safe_mode_gid को सक्रिय करते हैं, तो यह काम नहीं करेगा क्योंकि स्क्रिप्ट समूह "उपयोगकर्ता" है जबकि फ़ोल्डर समूह "डेमन" है।

सबसे अच्छा समाधान एक ही समूह को ftp उपयोगकर्ताओं और httpd के लिए सेट करना है। भूलें कि आपको "लिखने योग्य" फ़ोल्डर पर भी समूह तक पहुंच पहुंचने की अनुमति देना है, और यह कम सुरक्षित है क्योंकि चूंकि आपके सभी उपयोगकर्ता एक ही समूह में हैं, इसलिए httpD प्रक्रिया अन्य उपयोगकर्ता फ़ाइलों तक पहुंच सकती है जब आप सक्रिय करते हैं < कोड> safe_mode_gid ।

आपको वास्तव में safe_mode_gid + open_basedir को गठबंधन करना चाहिए और इसे से बचने के लिए उपयोगकर्ता का घर open_basedire मान के रूप में सेट करना चाहिए।

HTH

0
जोड़ा

उदाहरण के लिए वेबसर्वर उपयोगकर्ता नाम और समूह अपाचे: www है,

यदि आप यूआईडी की जांच करने के लिए सेट करते हैं, तो PHP प्रक्रिया केवल उपयोगकर्ता apache के स्वामित्व वाली किसी भी फ़ाइल तक पहुंच होगी। तो यदि आपके पास आपके सिस्टम पर एक और वेबसर्वर चल रहा है, उदाहरण के लिए tomcat: www के उपयोगकर्ता नाम और समूह के साथ टोमकैट, टोमकैट प्रक्रिया द्वारा बनाई गई किसी भी फाइल को PHP द्वारा एक्सेस नहीं किया जाएगा क्योंकि इसका स्वामित्व है tomcat उपयोगकर्ता।

लेकिन यदि आप इसके बजाय जीआईडी ​​चेक का उपयोग करते हैं, तो टोमकैट प्रक्रिया द्वारा बनाई गई फाइलें PHP प्रक्रिया द्वारा पठनीय हो सकती हैं क्योंकि वही www समूह से संबंधित है

0
जोड़ा