मैं सिस्टम एडमिनिस्ट्रेटर (रूट) के रूप में कमांड कैसे चलाता हूं


66

मुझे प्रशासनिक विशेषाधिकारों के साथ एक कमांड चलाने की आवश्यकता है। किसी ने कहा मुझे रूट के रूप में एक कमांड चलाना चाहिए। मैं यह कैसे करु?


2
कृपया इस प्रश्न के बारे में मेटा चर्चा देखें
स्टीफन

जवाबों:


94

मुख्य दो कमांडलाइन संभावनाएं हैं:

  • suजब संकेत दिया रूट पासवर्ड का उपयोग करें और दर्ज करें ।
  • sudoकमांड के सामने रखें , और संकेत मिलने पर अपना पासवर्ड डालें।

एक शेल कमांड को रूट के रूप में चलाना

sudo (पसंदीदा नहीं है जब चित्रमय प्रदर्शन चल रहा हो)

यह उबंटू, लिनक्स टकसाल, (यकीनन) डेबियन, और अन्य सहित अधिकांश प्रणालियों पर पसंदीदा तरीका है। यदि आप एक अलग रूट पासवर्ड नहीं जानते हैं, तो इस विधि का उपयोग करें।

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

उदाहरण:

sudo service apache restart

यदि आपको रूट के रूप में कई कमांड चलाने की आवश्यकता है, तो उनमें से प्रत्येक के साथ उपसर्ग करें sudo। कभी-कभी, रूट के रूप में एक इंटरैक्टिव शेल चलाने के लिए यह अधिक सुविधाजनक है। आप इसके लिए उपयोग कर सकते हैं sudo -i:

$ sudo -i
# command 1
# command 2
...
# exit

इसके बजाय sudo -i, आप उपयोग कर सकते हैं sudo -s। अंतर यह है कि है -iफिर मैं समझदार चूक के लिए पर्यावरण nitializes, जबकि -sबेहतर करने के लिए या बदतर के लिए अपने विन्यास फाइल का उपयोग करता है।

अधिक जानकारी के लिए, sudo वेबसाइट देखें , या man sudoअपने सिस्टम पर टाइप करें। सूडो बहुत विन्यास है; उदाहरण के लिए इसे एक निश्चित उपयोगकर्ता को केवल कुछ कमांड को रूट के रूप में निष्पादित करने के लिए कॉन्फ़िगर किया जा सकता है। अधिक जानकारी के लिए sudoersमैन पेज पढ़ें ; sudo visudosudoers फ़ाइल को संपादित करने के लिए उपयोग करें।

सु

suआदेश सबसे यूनिक्स सिस्टम पर मौजूद है। यह आपको एक अन्य उपयोगकर्ता के रूप में एक कमांड चलाने देता है, बशर्ते आप उस उपयोगकर्ता का पासवर्ड जानते हों। जब कोई उपयोगकर्ता निर्दिष्ट नहीं किया जाता है, suतो रूट खाते में डिफ़ॉल्ट होगा।

उदाहरण:

su -c 'service apache restart'

चलाने के लिए आदेश -cविकल्प का उपयोग कर पारित किया जाना चाहिए । ध्यान दें कि आपको उद्धरण चिह्नों की आवश्यकता है ताकि कमांड आपके शेल द्वारा पार्स न हो, लेकिन जो रूट शेल suचलाता है , उसके पास बरकरार रहे ।

रूट के रूप में कई कमांड चलाने के लिए, इंटरेक्टिव शेल शुरू करना अधिक सुविधाजनक है।

$ su
# command 1
# command 2
...
# exit

कुछ प्रणालियों पर, आपको उपयोग करने के लिए समूह संख्या 0 (बुलाया wheel) में होना चाहिए su। (बिंदु नुकसान को सीमित करने के लिए है यदि रूट पासवर्ड गलती से किसी को लीक हो गया है।)

जड़ के रूप में प्रवेश करना

यदि कोई रूट पासवर्ड सेट है और आप उसके कब्जे में हैं, तो आप बस rootलॉगिन प्रॉम्प्ट पर टाइप कर सकते हैं और रूट पासवर्ड दर्ज कर सकते हैं। बहुत सावधान रहें, और जटिल अनुप्रयोगों को जड़ के रूप में चलाने से बचें क्योंकि वे ऐसा कुछ कर सकते हैं जो आपने इरादा नहीं किया था। सीधे रूट के रूप में लॉग इन करना मुख्य रूप से आपातकालीन स्थितियों में उपयोगी है, जैसे कि डिस्क विफलता या जब आपने अपने खाते से खुद को लॉक कर लिया हो।

एकल उपयोगकर्ता मोड

एकल उपयोगकर्ता मोड, या रन-लेवल 1, आपको रूट विशेषाधिकार भी देता है। यह मुख्य रूप से आपातकालीन रखरखाव स्थितियों के लिए है जहां बहु-उपयोगकर्ता रन-स्तर में बूटिंग संभव नहीं है। आप पास singleया emergencyकर्नेल कमांड लाइन पर एकल उपयोगकर्ता मोड में बूट कर सकते हैं । ध्यान दें कि एकल-उपयोगकर्ता मोड में बूटिंग सिस्टम को सामान्य रूप से बूट करने और रूट के रूप में लॉग करने के समान नहीं है। बल्कि, सिस्टम केवल रन-लेवल के लिए परिभाषित सेवाओं को शुरू करेगा। आमतौर पर, यह प्रयोग करने योग्य प्रणाली के लिए आवश्यक सेवाओं की सबसे छोटी संख्या है।

आप टेलिनिट कमांड का उपयोग करके एकल उपयोगकर्ता मोड में भी प्राप्त कर सकते हैं telinit 1:; हालाँकि, इस आदेश को चलाने के लिए आपको पहले से ही किसी अन्य विधि के माध्यम से रूट विशेषाधिकार प्राप्त करने की आवश्यकता है।

कई प्रणालियों में एकल उपयोगकर्ता मोड में बूट करने पर उपयोगकर्ता को पासवर्ड के लिए संकेत दिए बिना रूट शेल तक पहुंच प्राप्त होगी। विशेष रूप से, systemd-बेड सिस्टम आपको रूट पासवर्ड के लिए संकेत देगा जब आप इस तरह से बूट करेंगे।

अन्य कार्यक्रम

Calife

यदि आप अधिकृत हैं, तो Calife आपको अपना पासवर्ड टाइप करके दूसरे उपयोगकर्ता के रूप में कमांड चलाने देता है। यह बहुत अधिक व्यापक सूडो (ऊपर देखें) के समान है। Calife sudo की तुलना में अधिक हल्के वजन की है, लेकिन कम विन्यास योग्य भी है।

सेशन

Op आपको रूट सहित अन्य उपयोगकर्ता के रूप में कमांड चलाने देता है। यह मनमाना आदेशों को चलाने के लिए एक पूर्ण विकसित उपकरण नहीं है: आप एक विशिष्ट कमांड को चलाने के लिए सिस्टम प्रशासक द्वारा कॉन्फ़िगर किए गए mnemonicop द्वारा पीछा करते हैं।

उत्तम

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

रूट के रूप में एक ग्राफिकल कमांड चलाना

विकिपीडिया भी देखें ।

PolicyKit (GNOME का उपयोग करते समय पसंदीदा)

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

man pkexecअधिक जानकारी के लिए देखें ।

KdeSu, KdeSudo (KDE का उपयोग करते समय पसंदीदा)

kdesuऔर क्रमशः kdesudoग्राफिकल फ्रंट- suएंड sudoहैं। वे आपको बिना किसी परेशानी के रूट के रूप में एक्स विंडो प्रोग्राम चलाने की अनुमति देते हैं। वे केडीई का हिस्सा हैं । प्रकार

kdesu -c 'command --option argument'

और रूट पासवर्ड, या टाइप करें

kdesudo -c 'command --option argument'

और अपना पासवर्ड दर्ज करें (यदि चलाने के लिए अधिकृत है sudo)। यदि आप KdeSu में "पासवर्ड रखें" विकल्प की जांच करते हैं, तो आपको लॉगिन सत्र के अनुसार केवल रूट पासवर्ड टाइप करना होगा।

अन्य कार्यक्रम

Ktsuss

Ktsuss ("सु सरल रखो, बेवकूफ") सु का एक चित्रमय संस्करण है।

Beesu

Beesu सु आदेश है कि रेड हैट-आधारित ऑपरेटिंग सिस्टम में Gksu की जगह है करने के लिए एक ग्राफिकल सामने के अंत है। यह मुख्य रूप से आरएचईएल और फेडोरा के लिए विकसित किया गया है।

अप्रचलित तरीके

gksu तथा gksudo

gksuऔर क्रमशः gksudoग्राफिकल फ्रंट- suएंड sudoहैं। वे आपको बिना किसी परेशानी के रूट के रूप में एक्स विंडो प्रोग्राम चलाने की अनुमति देते हैं। वे सूक्ति का हिस्सा हैं । प्रकार

gksu command --option argument

और रूट पासवर्ड, या टाइप करें

gksudo command --option argument

और अपना पासवर्ड दर्ज करें (यदि चलाने के लिए अधिकृत है sudo)।

gksuऔर gksudoअप्रचलित हैं। उन्हें गनोम में पॉलिसीकीट द्वारा बदल दिया गया है, और कई वितरण (जैसे उबंटू) अब डिफ़ॉल्ट रूप से उन्हें स्थापित नहीं करते हैं। आपको उन्हें उपलब्ध होने या ठीक से काम करने पर निर्भर नहीं होना चाहिए।

शेल-आधारित विधियों में से एक के माध्यम से मैन्युअल रूप से

"शेल सेक्शन को रूट सेक्शन के रूप में चलाने" में से किसी एक विधि का उपयोग करें। आपको यह सुनिश्चित करने की आवश्यकता होगी कि रूट करने के लिए संक्रमण के दौरान न तो DISPLAYपर्यावरण चर और न ही XAUTHORITYवातावरण रीसेट हो। इसके लिए उन तरीकों के अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता हो सकती है जो इस प्रश्न के दायरे से बाहर हैं।

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

किसी फ़ाइल को रूट के रूप में संपादित करना

देखें कि मैं फ़ाइल को रूट के रूप में कैसे संपादित करूं?


2
यह ध्यान दिया जाना चाहिए कि sudoकेवल तभी काम करेगा यदि (1) यह स्थापित है और (2) यदि आपका उपयोग sudoers फ़ाइल में है और इसने ऑपरेशन करने की अनुमति दी है।
n0pe

2
इसे अद्यतन करने की आवश्यकता है। आजकल बहुत अधिक वितरण में / pkexecबदल रहा है। gksugksudo
3

1
@strugee - क्या आप इसे आज़माने और अपडेट करने जा रहे थे? Redhat के तहत सामान भी सही नहीं है।
slm

8

उपयोग करें su:

$ su -c command

या

$ su
# command
# exit

किसी भी स्थिति में, आपको rootपासवर्ड के लिए संकेत दिया जाएगा । अधिक जानकारी के लिए, मैनुअल पेज देखें ।


3

चूंकि प्रश्न लिनक्स विशिष्ट नहीं था, यहां आप सोलारिस 9+ (या ट्रस्टेड सोलारिस 8) में समान लक्ष्य कैसे प्राप्त करते हैं:

सोलारिस, संस्करण 9 के बाद से, आरबीएसी या रोल बेस्ड एक्सेस कंट्रोल के रूप में संदर्भित उपकरणों का एक सूट शामिल है।

RBAC का अभिप्राय यह है कि उपयोगकर्ताओं और / या भूमिका को प्राधिकरणों और अधिकारों के अनुदान के माध्यम से, या उपयोगकर्ताओं को रोल्स प्रदान करने के माध्यम से, आप अविश्वसनीय रूप से ठीक दाने वाले मॉडल बना सकते हैं जो कौन से विशेषाधिकार के साथ चला सकते हैं।

अनिवार्य रूप से, आप / etc / सुरक्षा / Andor_attr में प्राधिकरण की पहचान करते हैं, फिर उन्हें उपयोगकर्ताओं को / etc / user_rr में भूमिका या अनुदान देते हैं।

आप प्रोफ़ाइल को / etc / सुरक्षा / prof_attr में परिभाषित करते हैं। फिर आप उन प्रोफाइल के साथ / etc / security / exec_attr को जोड़ते हैं, उसके बाद उन प्रोफाइल को / etc / user_attr फ़ाइल में उपयोगकर्ताओं को असाइन करते हैं।

एक बार जब वे चीजें हो जाती हैं, तो आप वास्तव pfexec <command>में कमांड को विशेषाधिकार प्राप्त या प्राधिकरण के साथ निष्पादित करने के लिए चलाते हैं जो उस कमांड के लिए उस उपयोगकर्ता को दिए जाते हैं ।

RBAC के बारे में अच्छी बात यह है कि केवल उपयोगकर्ता या कमांड के संयोजन के लिए कोई अतिरिक्त विशेषाधिकार स्वयं या उपयोगकर्ता को दिए गए आदेश नहीं हैं। तो यह बाइनरी + एस बनाने से ज्यादा सुरक्षित है, या केवल एक उपयोगकर्ता को कुछ भी निष्पादित करने में सक्षम होने के लिए सुडो का उपयोग करना। (मुझे पता है कि आप सूडो को बंद कर सकते हैं, लेकिन मेरे अनुभव में ज्यादातर लोग नहीं करते हैं)

RBAC का एक और फायदा यह है कि आप रूट को एक खाता बना सकते हैं, और उस भूमिका को उन उपयोगकर्ताओं को सौंप सकते हैं जो 'su' कमांड और रूट पासवर्ड के साथ रूट बनने में सक्षम हैं। रूट उपयोगकर्ता एकल उपयोगकर्ता मोड में लॉग इन करने में भी सक्षम होगा, जो लिनक्स मॉडल की तुलना में बेहतर (मेरी राय में) है जहां आप रूट पासवर्ड को अक्षम कर सकते हैं passwd -d root, या रूट खाते को लॉक कर सकते हैं passwd -l root, दोनों ही रूट में लॉगिंग को काफी बनाते हैं। कठिन जब कुछ गलत हो जाता है।

बेन रॉकवुड का RBAC पर एक महान ब्लॉग पोस्ट है जिसे RBAC on (Open) Solaris का उपयोग करके पढ़ा जा सकता है ।


3

या आप कुछ कमांड्स को एक महाशक्ति दे सकते हैं। मैं विशेष अनुमतियों के बारे में बात कर रहा हूं जिसमें स्वामी की अनुमति के साथ आदेश निष्पादित किए जाते हैं।

उस पथ के #which <command>लिए SUID या SGID द्वारा कमांड का पथ प्राप्त करें और सेट करें।

PS - SUID और SGID बिट्स को सावधानी के साथ दिया जाना चाहिए। वे आपके सिस्टम को असुरक्षित बना सकते हैं।

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