क्या लिनक्स में हर छोटी चीज़ के लिए 'sudo' लिखने से रोकने का कोई तरीका है?


59

मैं जल्द ही एक अच्छी मात्रा में PHP का काम करने जा रहा हूं, और मैं RoR सीखने में दिलचस्पी रखता हूं, इसलिए मैंने अपने वर्चुअलबॉक्स में लिनक्स मिंट 12 स्थापित किया।

स्विच का सबसे निराशाजनक पहलू, अब तक लिनक्स अनुमतियों के साथ काम कर रहा है। ऐसा लगता है कि मैं कुछ भी उपयोगी नहीं कर सकता (जैसे, कहते हैं, मेरे डाउनलोड निर्देशिका से Symfony2 tarball को मेरे दस्तावेज़ रूट पर कॉपी करें और इसे निकालें) बिना sudo के रूट के रूप में प्रस्तुत किए बिना।

क्या लिनेक्स को बताने का एक आसान तरीका है कि मुझे कुछ निर्देशिकाओं के लिए बिना उनकी अनुमति के खुली छूट दे दी जाए?


1
कई डिस्टर्ब्यूशन में विभिन्न सिस्टम उपयोगिताओं के लिए कॉन्फ़िगरेशन को संपादित करने के लिए सशक्त समूह होगा । अपने आप को उस समूह में रखें और एक नया खोल खोलें।
dmckee

क्या मेरे होम डायरेक्टरी में इसके बजाय डॉक्यूमेंट रूट को इंगित करना बेहतर होगा?

3
The सुडो ’उन हास्यास्पद आदेशों में से एक है जो नए लिनक्स उपयोगकर्ताओं द्वारा बहुत अधिक बार उपयोग और दुरुपयोग किया जा रहा है। अक्सर मैं वेब पर ट्यूटोरियल देखूंगा जहां एक पंक्ति में 15 कमांड्स सूडो का उपयोग करेंगे? सामान्य स्थितियों में, आपको नियमित उपयोगकर्ता (अनुशंसित) के रूप में लॉग ऑन करते समय विशेष परमिट की आवश्यकता नहीं होनी चाहिए। मैं एक ऐसी कंपनी में था, जहाँ वे सब कुछ करते थे जो सुडोल इस्तेमाल करते थे। जब मैंने इसे (सुरक्षा कारणों से) प्रतिबंधित करने की कोशिश की, तो उन्होंने शिकायत की। Cryptic sudo config फाइल की जांच करने के बाद, मैंने एक दोष (हमेशा की तरह) देखा जिसने मुझे इस नियमित उपयोगकर्ता से सिस्टम को 'रूट' करने की अनुमति दी। सूदो है बेहद खतरनाक !!
लीच

जवाबों:


77

मेरे दिमाग में दो विकल्प आते हैं:

  1. निर्देशिका का उपयोग करके आप चाहते हैं chown:

    sudo chown your_username directory 
    

    (अपने इच्छित उपयोगकर्ता नाम और निर्देशिका के साथ अपना नाम बदलें।)

  2. दूसरी चीज़ जो आप कर सकते हैं, वह तब तक काम करता है जब तक आप जानते हैं कि आप क्या कर रहे हैं । रूट का उपयोग करने के लिए:

    sudo -s
    

    और फिर आप sudoहर कमांड से पहले टाइप किए बिना कुछ भी कर सकते हैं ।


"दूसरी चीज़ जो आप कर सकते हैं, वह तब तक रूट के रूप में काम करती है जब तक आप जानते हैं कि आप क्या कर रहे हैं। रूट का उपयोग करने के लिए ..." - ठीक है, कि डिस्ट्रोस और सुरक्षा समुदाय सबसे अच्छा अभ्यास करता है जो उपयोगकर्ताओं को सिखाने की कोशिश कर रहा है। संबंधित: "कम से कम विशेषाधिकार का सिद्धांत क्या है"

16

आम तौर पर बोलना, हमेशा अपने खुद के उपयोगकर्ता के रूप में काम करते हैं जब तक कि आप सिस्टम-वाइड प्रभाव के साथ कुछ नहीं कर रहे हों।

यदि ऐसी फाइलें हैं जिन्हें आप अपने वेब सर्वर पर रखना चाहते हैं, तो अपने स्वयं के उपयोगकर्ता के रूप में काम करें और फिर sudoअपने फाइल सिस्टम के वेब सेवारत क्षेत्र में जगह-जगह पर फाइलों को गिराने के लिए उपयोग करें। आमतौर पर, यह एक इंस्टॉलेशन स्क्रिप्ट द्वारा किया जाएगा, और आप कुछ पसंद करेंगे sudo -u webmaster install-webserver-files, या बेहतर sudo -u webmaster git update(या अपनी पसंद का संस्करण नियंत्रण प्रणाली)।

यदि आप एक विकास सर्वर पर काम कर रहे हैं और चाहते हैं कि आपकी फाइलें तुरंत सुलभ हों, तो वेब सर्वर क्षेत्र में एक निर्देशिका बनाएं और इसे स्वामित्व या कम से कम आपके द्वारा लिखने योग्य बनाएं। उस एक बार के ऑपरेशन ( sudo chown …या sudo -u webmaster setfacl …) के बाद, आपको दिन-प्रतिदिन के संचालन के लिए उन्नत विशेषाधिकार की आवश्यकता नहीं होगी।

कभी-कभी कई उपयोगकर्ताओं को निर्देशिका में लिखने की अनुमति देना सुविधाजनक होता है, या अन्यथा मालिक या कई समूहों के अलावा कई उपयोगकर्ताओं के लिए अलग-अलग अनुमतियाँ होती हैं। एक्सेस कंट्रोल लिस्ट आपको यह क्षमता देती हैं। सर्वर या बैकअप स्क्रिप्ट अनुमति समस्या पर साझा निर्देशिका के लिए अनुमतियाँ समस्याएँ देखें ।


3

हां, रूट के रूप में लॉगिन करें जो आपको सुपर उपयोगकर्ता अभिगम नियंत्रण प्रदान करता है।
विंडोज़ में समान अवधारणा, आप व्यवस्थापक का उपयोग करके अपने टर्मिनल में प्रवेश कर सकते हैं।


मुझे लगता है कि आप सीधे मूल पोस्टर के सवाल का जवाब दे रहे हैं। लेकिन यह बुरी सलाह है, जो डाउन-वोट की व्याख्या करती है।
bignose

जैसे कि आपने इसे विंडोज से संबंधित किया है।
LeWoody

3

यह हमेशा से मेरी विचारधारा रही है कि, एक उपयोगकर्ता के रूप में आप लिनक्स पर और बाकी सब चीजों के लिए जो चाहें कर सकते हैं sudosudoकुछ चीजों को कुछ अन्य उपयोगकर्ताओं के रूप में निष्पादित करने की अनुमति देता है, ज्यादातर मामलों में rootसिस्टम प्रशासन के लिए। sudoमेरे रूटीन कार्यों और विशेषाधिकारों को कुछ (कुछ) उपयोगकर्ता को कुछ अन्य लोगों को सौंपने के लिए अधिक से अधिक लाभ संसाधन रहा है और अपने समय और दूसरों के समय को बेहतर बनाने के लिए और अधिक से अधिक विशेषाधिकार प्राप्त किए बिना बेहतर प्रबंधन करने में मदद करता है। उसी समय, यह उन पर मेरा विश्वास है जो उनकी प्रविष्टियों को उपस्थित रखता हैsudoersविन्यास फाइल। मुझे यकीन नहीं है कि अगर यह संबंधित हो सकता है, लेकिन मैं क्या कह सकता हूं कि, सुडो आपको एक बेहतर सुरक्षा परिप्रेक्ष्य देता है कि सभी कौन और वे अपने विश्वसनीय विशेषाधिकार के साथ क्या कर सकते हैं। यहां तक ​​कि अगर कुछ गलत हो जाता है, तो भी वे जिम्मेदार होते हैं। (मैं हमेशा कुछ डरपोक चोटी कर सकता हूं सूडोज के साथ अपराधियों को खोजने के लिए लॉग जानकारी)। मेरे लोगों ने हमेशा मुझे अपनी चिंता व्यक्त की है कि उन्हें लिनक्स वातावरण में उन्नत विशेषाधिकार के साथ जो कुछ करना चाहते थे, उसके लिए उन्हें सूडो टाइप करना होगा। यहाँ भी मुझे वही सवाल मिला।

विकल्पों को खोजने के लिए समाधान और मेरी खोज को देखने के लिए, मैं संसाधन आधारित अभिगम नियंत्रण RBAC पर आया था, लेकिन Solarisजैसे उपकरण pfexecआदि के साथ एक अन्य साहसिक भूमि में । यह दृष्टिकोण अधिक बेहतर है क्योंकि इससे उपयोगकर्ताओं के विशेषाधिकार पहले से ही बढ़ जाएंगे और भरोसा करेंगे विवेक और सतर्कता पर sysadmins अपने विशेषाधिकारों के साथ क्या करना चाहते हैं।

RBAC के उपलब्ध समाधान और लिनक्स दुनिया में इसके कार्यान्वयन को ध्यान में रखते हुए, मैं भर में ठोकर खाई

SELinux http://www.ibm.com/developerworks/linux/library/l-rbac-selinux/

grsecurity http://en.wikipedia.org/wiki/Grsecurity

और जबकि कुछ अन्य कार्यान्वयन हैं, मैं सूची के शीर्ष क्रम में उन पर विचार करूंगा। RBAC को लागू करना एक संगठन में बहुत काम है, खासकर जब कई उपयोगकर्ता हैं। RBAC सजातीय वातावरण में अधिक बड़े समाधान की ध्वनि करेगा। हालांकि, जब नेटवर्क में विषम यूनिक्स इंस्टॉलेशन होते हैं और उपयोगकर्ता डेटाबेस सामान्य होता है, तो यह संभवतः विफल हो जाएगा। चूंकि SELinux Solaris पर स्केलेबल / लागू नहीं है और RBAC / pfexec टूल लिनक्स पर लागू नहीं होते हैं। किसी एक काम को करने के लिए अलग-अलग दृष्टिकोण मौजूद हैं। उदाहरण के लिए: http://blogs.oracle.com/darren/entry/opensolaris_rbac_vs_sudo/howto

नेटवर्क वाइड विभिन्न इंस्टॉलेशन इस दृष्टिकोण का समर्थन नहीं कर सकते हैं (हालांकि ओपनब्रैक को सामान्य कार्यान्वयन दृष्टिकोण माना जा सकता है) जैसे कि sudoers एकल होस्ट दृष्टिकोण है या नेटवर्क / डोमेन में केंद्रीकृत कॉन्फ़िगरेशन के लिए सक्षम नहीं है।/etc/sudoersहर बार समन्‍वयित किए जाने की आवश्‍यकता होती है। अधिक जानकारी, sudoers फ़ाइल को संचालित करते समय नॉलेजबेस की आवश्यकता होती है, किसी भी गलतियों को न करने और किसी भी अनुदान की अनुमति देने के लिए sudoers कॉन्फ़िगरेशन की नीति भाषा को समझना आवश्यक है। RBAC एक हद तक एक केंद्रीकृत दृष्टिकोण की पेशकश कर सकता है, जबकि सुरक्षा प्रोफाइल सामान्य हो सकती है, दी गई भूमिका से एक उपयोगकर्ता को जोड़ना / हटाना एक ही स्थान से किया जा सकता है (यह वह जगह है जहां उपयोगकर्ता / पासवार्ड / समूह की जानकारी संग्रहीत है) डोमेन जैसे LDAP, NIS या AD)। यह भी स्पष्ट रूप से कुछ, जा रहा है जैसे smexec, smmultiuser जैसे RBAC डेटाबेस पर काम करने के लिए आवश्यक आदेशों को समझने की आवश्यकता होगी।

सूडो यहां अभी भी अधिक क्रॉस-प्लेटफ़ॉर्म दृष्टिकोण की पेशकश कर सकते हैं, यह सभी यूनिक्स / जैसे प्लेटफार्मों पर काम करता है जो सेट्यूड सुविधाएँ प्रदान करते हैं। दोनों sudoऔर RBACगैर-रूट उपयोगकर्ताओं को कुछ विशेषाधिकार है कि देने के साथ किया जा सकता है में सफल होने दे रही है rootपासवर्ड ही। सूडो कमांड लाइन के तर्कों पर अधिक बारीक / बारीक आधारित दृष्टिकोण दे सकते हैं जिनका उपयोग कमांड चलाते समय किया जा सकता है और विशुद्ध रूप से प्रतिबंधित किया जा सकता है कि तर्कों के साथ कमांड को उन्नत विशेषाधिकार के साथ कैसे चलाया जा सकता है। जबकि RBAC स्थापित कमांड या बायनेरी तक का उपयोग करने के लिए प्रतिबंधित हो सकता है लेकिन कमांड लाइन के तर्कों पर कोई नियंत्रण नहीं है। जबकि आरबीएसी वातावरण में ऑडिटिंग बेहतर और निर्मित हैsudo, यह विन्यास पर निर्भर करता है और साथ ही साथ सिक्योरिटी की कमी के कारण (जैसे शेल को मंजूरी नहीं देता है और विशेष रूप से मेजबानों को किसी भी समस्या के बिना अन्य होस्ट में प्रवेश करने की अनुमति है)। ये कुछ अंतर हैं जो मैं उद्धृत कर सकता हूं और मुझे व्यक्तिगत रूप से आरबीएसी की तुलना में सुडो का उपयोग करने के लिए झुकाव है, हालांकि उक्त सीमाओं के साथ मैं कुछ कामों को लागू करने में आ सकता हूं। आरबीएसी द्वारा बेहतर सूदो के लाभ के लिए सभी समस्याओं को संबोधित किए जाने तक, मुझे नहीं लगता कि सूदो के लिए यह सरल है।


1

जहाँ आप काम कर रहे हैं, मैं दस्तावेज़ रूट को चुनूंगा, ताकि आपके पास इसकी पूरी पहुँच हो।

हर बार जब आप एक जेम स्थापित करते हैं, तो टाइप करने से बचने के लिए, यहाँ इस लेख का पालन करें: http://forums.site5.com/showthread.php?t=11954

मैं रूबी और रेल के संस्करणों को प्रबंधित करने के लिए आरवीएम स्थापित करने की अत्यधिक अनुशंसा करता हूं। http://beginrescueend.com/

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


आरवीएम के बारे में जानता था, लेकिन फोरम लिंक के लिए धन्यवाद।
मेजर प्रोडक्शंस

0

कमांड चलाएं।

sudo su root

अब आप रूट उपयोक्ता के रूप में कमांड चला सकेंगे। सावधान रहे! जो भी कमांड चलाया जाएगा वह रूट यूजर के रूप में होगा। यदि आप सावधान नहीं हैं तो आप चीजों को गंभीरता से गड़बड़ कर सकते हैं।

या आप अपने उपयोगकर्ता को फ़ाइलों को सहेजने और संपादित करने की अनुमति देने के लिए निर्देशिका की अनुमतियों को बदलते हैं।


4
सिर्फ क्यों नहीं sudo -s?
8

1
या sudo -iजैसे ही यह लॉगिन शेल के रूप में अनुकरण करता है। यह मूल स्थानीय रूट लॉगिन से थोड़ा सा करीब हो सकता है जो कि सैशो के माध्यम से बैश या किसी अन्य शेल को चलाने से हो सकता है।
बास्टियन एबेलिंग

1
सिर्फ क्यों नहीं su? सुडोल के साथ यह जुनून क्या है? आप sudo की जरूरत नहीं है। कभी।
ओरियन

2
suयदि पासवर्ड अज्ञात है , तो इसे उपयोग करना संभव नहीं है । एक उपयोगकर्ता को sudoers में जोड़ने और चलाने sudo suसे उपयोगकर्ता अपने मौजूदा और ज्ञात उपयोगकर्ता पासवर्ड का उपयोग करने की अनुमति देता है
ल्यूक

0

उपयोगकर्ता / समूह आईडी को UID 0 और GID 0 में बदलकर उपयोगकर्ता को "yourUserName" के लिए संपादित करें / etc / passwd फ़ाइल और रूट अनुमति दें:

yourusername: 0: 0 :: / घर / yourusername: / bin / श


2
सुरक्षा बुरे सपने की सिफारिश मत करो! यह सबसे खराब तरह का अभ्यास है।
काउंटरमोड

मैं अपने रास्पबेरी पी के लिए इस समाधान का उपयोग कर रहा हूं जिसमें मेरे अन्य उपयोगकर्ता खाते नहीं हैं और यह मेरे घर नेटवर्क से जुड़ा है
उफ़ुक özkanlı

0

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


-1

user @ server: ~ $ sudo passwd root
[sudo] उपयोगकर्ता के लिए
पासवर्ड: नया UNIX पासवर्ड दर्ज करें: नया UNIX पासवर्ड
लिखें:
passwd: पासवर्ड सफलतापूर्वक
उपयोगकर्ता @ सर्वर अपडेट किया गया : ~ $ su
पासवर्ड:
root @ सर्वर: / होम / # #

क्या वह "#" सुंदरता की चीज नहीं है?

मैं "सुडो" का उपयोग केवल एक बार करने की क्षमता प्राप्त करने के लिए करता हूं

उपयोगकर्ता @ सर्वर: ~ $ su
पासवर्ड:
रूट @ सर्वर: / होम / उपयोगकर्ता #

सर्वर के जीवन के लिए।

इसे फिर से सुरक्षित बनाने के लिए,

रूट @ सर्वर: / होम / उपयोगकर्ता # निकास
निकास
उपयोगकर्ता @ सर्वर: ~ $

Sysadmins सालों से ऐसा कर रहे हैं जब "sudo" मॉलीकॉडलिंग ट्रेंड का हिस्सा नहीं था।

जब आप ऐसा करते हैं, तो यह आपकी जिम्मेदारी है कि आप मेरी देखभाल करें, मेरी नहीं।

इयान


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