Nginx / Ubuntu पर एपीआई के साथ प्रक्रियाओं को निष्पादित करने के लिए उपयोगकर्ता को स्विच करें


0

मैं Nginx (Ubuntu सर्वर पर) का उपयोग करके एक एपीआई बनाना चाहता हूं जो प्रक्रियाओं को चलाने में सक्षम है (कमांड निष्पादित करें) लेकिन www-डेटा एक उपयोगकर्ता नहीं है जिसके पास इन प्रक्रियाओं पर काम करने वाले डेटा तक पहुंच होगी। सुरक्षा से समझौता किए बिना ऐसा करने का सामान्य तरीका क्या है। दूसरे शब्दों में, मैं एपीआई को अन्य उपयोगकर्ता के रूप में कैसे निष्पादित कर सकता हूं?

जवाबों:


1

www-data सिर्फ उपयोगकर्ता है जो डिफ़ॉल्ट रूप से NGINX प्रक्रिया को चलाता है, मुझे लगता है कि आपका API NGINX के पीछे चल रहा है, तो आपका API www-data के रूप में निष्पादित करेगा। एनआईआईएनएक्सएक्स के लिए नए उपयोगकर्ता को पढ़ने / लिखने या बनाने के लिए www-डेटा उपयोगकर्ता और / या समूह को अनुमति देने के लिए आपको अपने डेटा की अनुमतियों (यदि स्थानीय) को बदलने की आवश्यकता है, तो मैं आपको जो मान रहा हूं, वह एक समस्या है जिसे हल करने के लिए आपको अनुमति है। चलाने के लिए।

एक NGINX के साथ काम करते समय कुछ संकेत:

  • अपने वेब सर्वर को चलाने वाले उपयोगकर्ता को रूट एक्सेस न दें, क्योंकि तब आपके वेब एप्लिकेशन में आपके सिस्टम पर रूट एक्सेस होगा, जो अनावश्यक कमजोरियों को खोल देगा।

  • अपने डेटा को सार्वजनिक न करें (सभी उपयोगकर्ताओं के लिए खुली अनुमति) लेकिन उन्हें मालिक और उन विशिष्ट उपयोगकर्ताओं तक सीमित करें, जो आपके सर्वर के सुरक्षित होने के बावजूद उन्हें एक्सेस कर रहे हैं।

यदि यह वह नहीं है जो आप ढूंढ रहे हैं, तो कृपया बेहतर और अधिक सटीक उत्तर प्राप्त करने के लिए विस्तृत करें।

संपादित करें: एहसास हुआ कि मैंने आपको उपयोगकर्ता को स्विच करने की आज्ञा कभी नहीं दी:

किसी फ़ाइल पर अनुमतियों को संशोधित करने के लिए आप chmod और chown का उपयोग कर सकते हैं , उदाहरण के लिए, www-data उपयोगकर्ता के लिए फ़ाइलों की अनुमतियाँ बदलने के लिए:

chmod 500 file1 file2 file3
chmod -R 500 directory1/

chown www-data:www-data file1 file2 file3
chown -R www:data:www-data directory1

शुरू कर देना चाहिए!

सादर


यह मैं समझता हूं लेकिन, दैनिक आधार पर, गैर-www-डेटा उपयोगकर्ता के तहत नए डेटा पर काम करने के लिए स्थान पर लिखा जाता है, मैं इससे कैसे
नील्स

1
यदि डेटा आपके एपीआई द्वारा लिखा गया है, तो इसे स्वचालित रूप से बाद में पढ़ने के लिए आवश्यक अनुमतियाँ मिलनी चाहिए, यह मानते हुए कि एपीआई एनजीआईएनएक्स के पीछे चलता है, अगर इसका एक बाहरी सिस्टम अगर उपयोगकर्ता को यह सुझाव देगा कि सिस्टम www का हिस्सा है। डेटा समूह तो यहां तक ​​कि अगर वह अपनी अनुमतियों के साथ लिखता है तो NGINX नए डेटा तक पहुंचने में सक्षम होगा।
13

उस स्थिति में केवल उस उपयोगकर्ता को www-डेटा समूह में जोड़ना पर्याप्त नहीं है। प्रत्येक फ़ाइल / फ़ोल्डर के लिए उस समूह को सेट करना भी आवश्यक है ... जो स्वचालित रूप से नहीं किया गया है। क्या मुझे ग्रुप मास्क या कुछ और जैसा करना चाहिए?
नील्स

नहीं, आप फ़ाइलों को बनाते समय जो भी समूह सेट कर रहे हैं उसमें www-data जोड़ते हैं, इस तरह से प्रत्येक फ़ोल्डर / फ़ाइल में है और आपके nginx को स्वचालित रूप से अनुमति दी जाती है
jtafurth

0

एग्जीक्यूटिंग सर्वर पर जॉब लिस्ट मेंटेन करना और जॉब्स (कमांड्स) को स्थानीय स्तर पर चलाना जैसे कि क्रॉन को ऐसा करने का एक अच्छा तरीका लगता है। काम करने के लिए कमांड और डेटा बनाने वाले एपीआई को पूरी तरह से अलग करना। मास्किंग और बड़े पैमाने पर chmods आदि के लिए समय की जरूरत नहीं ...

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.