सुडो विशेषाधिकार के बिना आवेदन कैसे बनाएं?


15

मुझे उबुन्टु 9.10 सर्वर पर सेटअप करने की क्या आवश्यकता है ताकि उपयोगकर्ता सूडो / व्यवस्थापक विशेषाधिकारों की आवश्यकता के साथ वहाँ पसंद (यानी ।/configure, make && make install) के अनुप्रयोगों का निर्माण कर सके।

मुझे लगता है कि सिस्टम के कुछ हिस्सों के लिए उपयोगकर्ता को एक्सेस करने के लिए मुझे एक सुरक्षा जोखिम का एक सा महसूस होता है, जिसकी उन्हें ऐप बनाने के लिए आवश्यकता नहीं हो सकती है।

जवाबों:


40

यदि आपके उपयोगकर्ता उपयोग करते हैं

./configure --prefix=/home/user/opt/

या cmake परियोजनाओं के लिए

cmake -D CMAKE_INSTALL_PREFIX:PATH=/home/user/opt/ ../source/

यह प्रोग्राम को उस उपसर्ग में स्थापित करेगा (डिफ़ॉल्ट / usr / स्थानीय / के बजाय) और आपके उपयोगकर्ताओं को तब इस तरह से प्रोग्राम चलाने में सक्षम होना चाहिए:

/home/user/opt/bin/program

यदि आप चाहते हैं कि वे केवल नाम (पूर्ण पथ के बिना) का उपयोग करके प्रोग्राम चलाने में सक्षम हों, तो आपको /home/user/opt/binपथ पर्यावरण चर में जोड़ने की जरूरत है , उपयोगकर्ताओं को संपादित करें। निम्न पंक्ति जोड़ें और जोड़ें:

export PATH=/home/user/opt/bin:$PATH

ध्यान दें कि इस तरह से स्थापित प्रोग्राम विशिष्ट उपयोगकर्ता के लिए निजी होंगे, लेकिन यह इसे करने का एक तरीका है


अन्य उपयोगकर्ता इस तरह स्थापित कार्यक्रमों का उपयोग करने में सक्षम होंगे यदि वे पूर्ण पथ की आपूर्ति करते हैं और अनुमतियाँ उचित रूप से सेट की जाती हैं; और ऐसा लगता है कि डिफ़ॉल्ट umask मेरे डेस्कटॉप इंस्टॉल पर यह अनुमति देता है।
एलिस्टेयर बुक्सटन

मैं जिस कोडबेस को संकलित कर रहा था, उसमें Makefileकोई कॉन्फिगर नहीं था , मैं बस इसमें चला गया और prefix = /some/pathलाइन को अपने होम डायरेक्टरी (नो ट्रेलिंग स्लैश) में बदल दिया और फिर make installबिना सूडो के भाग गया - सभी अब काम कर रहे हैं, इसलिए धन्यवाद।
बिग रिच

8

उपयोगकर्ता sudo अधिकारों के बिना एप्लिकेशन का निर्माण कर सकते हैं। केवल उसी समय जब आपको sudo अधिकारों की आवश्यकता होती है, जब आप सिस्टम निर्देशिकाओं में कुछ स्थापित करना चाहते हैं।

./configureऔर makeहमेशा सूडो अधिकारों के बिना काम करते हैं। make installआमतौर पर sudo अधिकारों की आवश्यकता होती है क्योंकि यह एप्लिकेशन को /usr/localया /usr(कभी-कभी /opt) स्थापित करेगा ।

हालाँकि, यदि आप इंस्टॉलेशन पथ (यानी ./configure --prefix=~/usr/local) के लिए उपसर्ग को इस तरह से बदलते हैं कि इंस्टॉलेशन उपयोगकर्ता के होम डायरेक्टरी ट्री के अंदर किया जाएगा, तो इसके लिए किसी sudo अधिकार की आवश्यकता नहीं है make install


मुझे अभी भी लगता है कि आपका उत्तर पूरी तरह से समर्थित नहीं है। हमेशा बिना काम के क्यों ./configureऔर कैसे makeकाम करते हैंsudo ? मुझे इसे किसी ऐसे व्यक्ति के लिए कैसे उचित ठहराना चाहिए जो sudo make installउदाहरण के लिए क्रियान्वित रहता है ?
निकोस एलेक्जेंड्रिस

0

क्या करने के लिए जोड़ा जा रहा है txwikinger ने कहा है, आप भी जांच करना चाह सकते fakerootहैं, जिसके साथ .deb संकुल के निर्माण के लिए एक अवसर देता है dpkgऊपर उठाया विशेषाधिकारों की जरूरत के बिना। बेशक, उन लोगों को स्थापित करने के लिए आम तौर पर सुडो पहुंच की आवश्यकता होगी।

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