मैंने एक Django साइट चलाने वाली एक Gunicorn प्रक्रिया का प्रबंधन करने के लिए पर्यवेक्षक का उपयोग किया है, हालांकि यह प्रश्न पर्यवेक्षक द्वारा प्रबंधित किए जाने वाले किसी भी चीज़ से संबंधित हो सकता है। पहले मैं केवल एक ही व्यक्ति था जो हमारे सर्वर का प्रबंधन और उपयोग कर रहा था, और पर्यवेक्षक सिर्फ रूट के रूप में चलता था और supervisorctl restart myapp
जरूरत पड़ने पर चलने के लिए मैं सुडो का उपयोग करता था ।
अब हमारे सर्वर को विभिन्न साइटों पर काम करने वाले कई उपयोगकर्ताओं का समर्थन करना है, और प्रत्येक परियोजना को अन्य उपयोगकर्ताओं की प्रक्रियाओं को फिर से शुरू करने में सक्षम होने के बिना अपनी खुद की gunicorn प्रक्रियाओं को पुनरारंभ करने में सक्षम होने की आवश्यकता है।
मैंने इस ब्लॉग पोस्ट का अनुसरण किया:
http://drumcoder.co.uk/blog/2010/nov/24/running-supervisorctl-non-root/
और गैर-रूट उपयोगकर्ताओं को पर्यवेक्षक के उपयोग की अनुमति देने में सक्षम था, लेकिन अब कोई भी किसी और की प्रक्रियाओं को पुनः आरंभ कर सकता है। यह लग रहा है से, पर्यवेक्षक प्रति उपयोगकर्ता अभिगम नियंत्रण करने का एक तरीका नहीं है।
किसी के पास कोई भी विचार है कि कैसे उपयोगकर्ताओं को बिना रूट के केवल अपनी प्रक्रियाओं को पुनरारंभ करने की अनुमति दी जाए?
संपादित करें: कुछ चीजों के बारे में हमने सोचा है कि इसमें रद्दी बिट सेट के साथ एक स्क्रिप्ट लिखी जाती है जिसमें कुछ भी नहीं होता है supervisorctl restart myapp
और इसे उस उपयोगकर्ता की निर्देशिका में रखा जाता है जो इसके मालिक हैं myapp
। इंटरनेट यह कहता नजर आ रहा है कि अगर गलत तरीके से ऐसा किया जाता है तो ऐसी स्क्रिप्ट असुरक्षित है। हमने एक कस्टम डेमॉन लिखने पर भी विचार किया जो विशिष्ट उपयोगकर्ताओं से आदेशों के लिए सुनता है और यदि उपयोगकर्ता की अनुमति है तो पर्यवेक्षक प्रक्रिया को पुनरारंभ करता है। यह विचार अत्यधिक जटिल लगता है यदि एक सरल समाधान काम करेगा।