मेरे पास एक पायथन स्क्रिप्ट में एक त्वरित कार्य है जिसे मैं Django (www उपयोगकर्ता) से कॉल करना चाहता हूं, जिसे विशेषाधिकारों को रूट करने की आवश्यकता होगी।पाइथन स्क्रिप्ट को रूट के रूप में निष्पादित करें (सेट्यूयूड बनाम सी-रैपर)
सबसे पहले मुझे लगता है मैं पायथन के os.seteuid() का उपयोग करें और स्क्रिप्ट पर setuid बिट सेट कर सकते हैं सोचा, लेकिन तब मुझे एहसास हुआ कि मैं स्थापित करने के लिए अजगर ही है, जो मुझे लगता है पर setuid बिट बड़ा नहीं है के लिए होता है कि नहीं। जो कुछ मैं बता सकता हूं, उससे भी अगर मुकदमा का उपयोग किया जाए तो यह भी मामला होगा, जिसे मैं वास्तव में टालना चाहता हूं।
इस बिंदु पर, मैं केवल एक सी रैपर लिखने पर विचार कर रहा हूं और सेट के लिए मेरी पाइथन लिपि को रूट के रूप में कॉल करता हूं, इसके लिए आवश्यक तर्क पारित करता हूं।
क्या यह सही काम है या मुझे कुछ और देखना चाहिए?
आप इसे 'सबप्रोसेस' और 'सुडो' का उपयोग करके बाहरी प्रक्रिया के रूप में क्यों निष्पादित नहीं करते हैं, भले ही इस बारे में सबकुछ सड़ा हुआ हो। – Anders
क्योंकि उसे रूट के रूप में पायथन चलाने के लिए www अनुमति देने की आवश्यकता होगी :( – kwl34
प्राथमिक समस्या यह है कि सेटुइड और सामान्य सूडो ऑपरेशंस व्यक्तिगत पायथन स्क्रिप्ट पर लागू नहीं होते हैं क्योंकि वे बाइनरी करेंगे, बल्कि पाइथन दुभाषिया स्वयं। – kwl34