perl

2011-08-16 10 views
5

का उपयोग करके www-data के रूप में अपाचे को पुनरारंभ करना मैं एक वेबपृष्ठ पर काम कर रहा हूं, जो कुछ घटनाओं के बाद, कुछ फ़ाइलों को अद्यतन करने के लिए चल रहा है अपाचे सर्वर को पुनरारंभ करने की आवश्यकता है। मैं sudoers फाइल करने के लिए www-डेटा जोड़ने की कोशिश की:perl

www-data ALL=(ALL) NOPASSWD: /etc/init.d/apache2 start, /etc/init.d/apache2 stop, /etc/init.d/apache2 restart, /sbin/services apache2 restart 

लेकिन जब मैं अपाचे पुन: प्रारंभ कर, मैं निम्नलिखित मिल:

sudo -u www-data /etc/init.d/apache2 restart 
Restarting web server apache2                           (13)Permission denied: make_sock: could not bind to address 0.0.0.0:80 
no listening sockets available, shutting down 
Unable to open logs 

जब ऑनलाइन की तलाश में, मैंने पाया है कि लोगों की अनुमति के खिलाफ लग रहा था अपाचे को पुनरारंभ करने के लिए www-data और मुझे यह सुझाव नहीं मिला कि मैं यह कैसे करूँगा अगर मैं इस विशेष मामले के लिए चेतावनियों को अनदेखा करना चाहता हूं। यदि यह संभव नहीं है, तो वेबपृष्ठ को अपाचे को पुनरारंभ करने का सबसे आसान तरीका क्या होगा? मैं इस धारणा के तहत जा रहा हूं कि साइट निजी और सुरक्षित है और दुर्भावनापूर्ण व्यक्तियों द्वारा इसका उपयोग नहीं किया जाएगा, और मुझे लगता है कि यह परिस्थितियों में से एक उचित है। आपके समय के लिए धन्यवाद

उत्तर

1

init-scripts केवल रूट के रूप में चलाया जा सकता है (कम से कम मेरे मानक-डेबियन पर यह मामला है)।

अपाचे-प्रक्रिया (और अन्य सेवाओं के अन्य) प्रक्रिया के वास्तविक उपयोगकर्ता को बदलने के लिए सेटुइड (या अपने दोस्तों में से एक) को कॉल करेंगे।

0

जड़ वेबसर्वर पुनः आरंभ करना चाहिए:

sudo /etc/init.d/apache2 restart 

यह www-डेटा उपयोगकर्ता के तहत अपाचे रन कर देगा।

आपको www-data को sudoers फ़ाइल में जोड़ने की आवश्यकता नहीं है जब तक आप www-data उपयोगकर्ता को सर्वर को पुनरारंभ करने की अनुमति नहीं देना चाहते - लेकिन आमतौर पर आपको www-data खाते के अंतर्गत लॉग इन नहीं करना चाहिए, यह एक सिस्टम है लेखा।