Doas sudo के समान एक प्रिविलेज एस्केलेशन प्रोग्राम है। इसे यथासंभव हल्का और सरल बनाया गया है। यह OpenBSD के लिए डिफ़ॉल्ट प्रिविलेज एस्केलेशन प्रोग्राम है लेकिन OpenDoas प्रोग्राम के माध्यम से अन्य UNIX-जैसे ऑपरेटिंग सिस्टम के लिए भी उपलब्ध है।
sudo के साथ समस्या
वर्षों से, sudo UNIX दुनिया में वास्तविक प्रिविलेज एस्केलेशन प्रोग्राम बन गया है। हालांकि, इसका मतलब है कि sudo को UNIX-जैसी मशीन का उपयोग करने वाले हर व्यक्ति के लिए हर उपयोग-मामले को पूरा करना होगा। प्रोग्राम विकास में इस दृष्टिकोण ने sudo को एक अनियंत्रित प्रोग्राम बना दिया है जिसे समझना और उपयोग करना कठिन है।
उदाहरण के लिए, sudo के व्यवहार को संशोधित करने के लिए, आपको visudo नामक एक कमांड चलाने की आवश्यकता है। यह एक विशेष लोडर प्रोग्राम है जो "/etc/sudoers" फाइल को "सेफ मोड" में खोलता है।
Visudo कुछ चीजें करता है: यह नियमित रूप से "/etc/sudoers" फाइल में सिंटैक्स त्रुटियों की जांच करता है और "/etc/sudoers" फाइल को लॉक कर देता है ताकि वर्तमान उपयोगकर्ता के अलावा कोई अन्य फाइल को संपादित न कर सके। ये सतह पर उपयोगी लग सकते हैं, लेकिन visudo sudo की बढ़ती जटिलता का एक लक्षण है।
इसका मतलब है कि sudoers फाइल का सिंटैक्स इतना जटिल हो गया है कि संभावित सिंटैक्स त्रुटियों की जांच करना आवश्यक हो गया। इसका यह भी मतलब है कि sudo को सिंगल-यूजर और मल्टी-यूजर दोनों वातावरणों को पूरा करना होगा, इसलिए वर्तमान उपयोगकर्ता के लिए sudoers फाइल को लॉक करने की आवश्यकता है।
Sudo एक अद्भुत प्रोग्राम है। इसकी जटिल कॉन्फिगरेशन सिंटैक्स विस्तृत अनुमति प्रणाली बना सकती है जो एक अनुभवी सिस्टम एडमिनिस्ट्रेटर के लिए संभावित रूप से उपयोगी हो सकती है।
हालांकि, अधिकांश उपयोगकर्ताओं के लिए, हम केवल प्रोग्राम इंस्टॉल करने और अपने सिस्टम के साथ छेड़छाड़ करने के लिए रूट शेल चलाने के लिए sudo का उपयोग करते हैं। उन मामलों में sudo की जटिलता एक फीचर के बजाय बाधा अधिक प्रतीत होती है।
Doas क्यों उपयोग करें?
Doas का उद्देश्य sudo की जटिलता को हल करना है। इसे OpenBSD के लिए विकसित किया गया था और जल्दी से लगभग किसी भी Linux सिस्टम पर पोर्ट कर दिया गया। इसका उद्देश्य त्वरित और उपयोग में आसान होना है लेकिन साथ ही बनाए रखने में सरल और सुरक्षित भी होना है।
Doas का सिंटैक्स sudo से भी अलग है। इसे कॉन्फिगर करना सादे अंग्रेजी में लिखने के समान है। sudo में, उदाहरण के लिए, व्हील ग्रुप के किसी भी उपयोगकर्ता को बिना किसी पासवर्ड के रूट के रूप में निष्पादित करने की अनुमति देने का सिंटैक्स है:
%wheel ALL=(ALL) NOPASSWD: ALL
Doas में, इस बीच, सिंटैक्स समझने में कहीं अधिक आसान है:
permit nopass :wheel as root
इसके अलावा, doas को अपने कॉन्फिगरेशन को संशोधित करने के लिए visudo जैसे किसी विशेष लोडर प्रोग्राम की आवश्यकता नहीं है। उपयोगकर्ता को केवल किसी भी टेक्स्ट एडिटर के साथ कॉन्फिगरेशन फाइल संपादित करने की आवश्यकता है, और जब तक उपयोगकर्ता के पास पर्याप्त विशेषाधिकार हैं, वे कॉन्फिगरेशन में परिवर्तन कर सकेंगे।
यह doas को समझना और समझना आसान बनाता है। इसका सरल और स्पष्ट दृष्टिकोण विशेषाधिकार प्राप्त उपयोगकर्ताओं और समूहों को बनाने की प्रक्रिया को उपयोगकर्ता के लिए पारदर्शी और त्रुटि-मुक्त बनाता है।
sudo के साथ doas कैसे सेट करें
यदि आप Linux सिस्टम का उपयोग कर रहे हैं, तो एक अच्छा मौका है कि आप पहले से ही sudo को अपने प्रिविलेज एस्केलेशन प्रोग्राम के रूप में उपयोग कर रहे हैं, और यह doas इंस्टॉल करना अपेक्षाकृत सीधा बनाता है।
Debian और Ubuntu में, आप apt का उपयोग करके doas इंस्टॉल कर सकते हैं:
sudo apt install doas
Arch Linux में, आप pacman का उपयोग कर सकते हैं:
sudo pacman -Syu opendoas
Fedora के साथ, आप dnf का उपयोग कर सकते हैं:
sudo dnf install opendoas
Void Linux के लिए, आप xbps का उपयोग कर सकते हैं:
sudo xbps-install opendoas
मेरे मामले में, मैं Void Linux पर doas इंस्टॉल कर रहा हूं, इसलिए मैं XBPS का उपयोग कर रहा हूं।
Doas कॉन्फिगरेशन फाइल
doas इंस्टॉल होने के बाद, आप su का उपयोग करके रूट उपयोगकर्ता पर स्विच करके "/etc/doas.conf" फाइल को संपादित कर सकते हैं।
su --command="nano /etc/doas.conf"
Su आपके रूट पासवर्ड के लिए पूछेगा, और उसके बाद, यह nano का उपयोग करके कॉन्फिगरेशन फाइल को खोलेगा या बनाएगा।
एक बार हो जाने पर, आप देख सकते हैं कि "doas.conf" खाली है। यह visudo की तुलना में पूरी तरह से अलग है। लेकिन जैसा कि हमने पहले चर्चा की, doas कॉन्फिगर करना अपेक्षाकृत तुच्छ है।
कॉन्फिगरेशन सिंटैक्स
doas.conf के लिए सिंटैक्स इस प्रकार है:
permit|deny [options] identity [as target] [cmd command [args ...]]
- Permit और Deny सेट करेंगे कि doas नियम की अनुमति देगा या नहीं।
- Options doas के लिए अतिरिक्त कॉन्फिगरेशन हैं। नियमित उपयोगकर्ता के लिए सबसे उपयोगी विकल्प persist और nopass हैं।
- Identity वह उपयोगकर्ता या समूह है जो doas निष्पादित कर रहा है।
- as target वह उपयोगकर्ता है जिसे "Identity" रन कर सकता है या नहीं कर सकता।
- cmd वह कमांड है जिसे "Identity" "as target" के रूप में चला सकता है या नहीं चला सकता। डिफ़ॉल्ट सभी प्रोग्राम हैं, लेकिन आप इस फील्ड में किसी विशेष प्रोग्राम को निर्दिष्ट कर सकते हैं।
- args वे आर्गुमेंट हैं जो आपके द्वारा इंगित कमांड के लिए विशिष्ट हैं।
उदाहरण के लिए, निम्न लिखने से व्हील ग्रुप में किसी भी उपयोगकर्ता को रूट के रूप में कमांड निष्पादित करने में सक्षम बनाया जाएगा। रूट शेल तब तक बनी रहेगी जब तक विंडो बंद नहीं हो जाती।
permit persist :wheel as root
आप एक नियम भी बना सकते हैं जो केवल एक विशिष्ट उपयोगकर्ता को एक विशिष्ट कमांड के लिए लक्षित करता है। उदाहरण के लिए, आप उपयोगकर्ता "bob" को बिना किसी पासवर्ड के रूट के रूप में "apt" प्रोग्राम चलाने की अनुमति देने के लिए निम्न नियम का उपयोग कर सकते हैं।
permit nopass bob as root cmd apt
मेरे मामले में, मैं चाहता हूं कि ग्रुप "wheel" बिना किसी पासवर्ड के रूट के रूप में चले। मैं यह भी नहीं चाहता कि उपयोगकर्ता aga, जो व्हील ग्रुप का हिस्सा है, रूट के रूप में कोई भी कमांड चलाए। इसलिए मैं अपने "/etc/doas.conf" में निम्न लिखूंगा:
permit nopass :wheel as root deny aga as root
पोस्ट-कॉन्फिगरेशन
उसके बाद, आपको यह सुनिश्चित करने के लिए कुछ कमांड निष्पादित करने होंगे कि doas इरादा के अनुसार काम कर रहा है। पहले, आपको doas.conf के मालिक को ठीक से रूट पर सेट करने की आवश्यकता होगी:
sudo chown -c root:root /etc/doas.conf
आपको कॉन्फिगरेशन फाइल की फाइल अनुमतियों को 0644 पर सेट करने की भी आवश्यकता होगी ताकि यह सुनिश्चित हो सके कि फाइल केवल रूट उपयोगकर्ता के लिए सुलभ होगी।
sudo chmod -c 0644 /etc/doas.conf
अंत में, आपको कॉन्फिगरेशन के भीतर किसी भी सिंटैक्स त्रुटि के लिए doas की जांच करने की आवश्यकता होगी। ऐसा करने के लिए, निम्न कमांड चलाएं:
sudo doas -C /etc/doas.conf && echo "OK" || echo "ERROR"
बधाई हो! आपने अपने सिस्टम के लिए doas को सफलतापूर्वक इंस्टॉल और कॉन्फिगर कर लिया है। अब आप doas को sudo के विकल्प के रूप में उपयोग करना शुरू कर सकते हैं या अपने doas.conf फाइल को अपनी पसंद के अनुसार फाइन-ट्यून कर सकते हैं। Linux में सिस्टम एडमिनिस्ट्रेशन के बारे में अधिक जानकारी के लिए, आप इस लेख को पढ़ सकते हैं।
अक्सर पूछे जाने वाले प्रश्न
1. मेरा कॉन्फिगरेशन काम नहीं कर रहा लगता है। मैंने एक विशिष्ट उपयोगकर्ता के लिए एक नियम और एक सामान्य नियम जोड़ा है लेकिन उपयोगकर्ता के लिए नियम काम नहीं कर रहा लगता है।
Doas कॉन्फिगरेशन फाइल सबसे सामान्य नियम से लेकर सबसे विशिष्ट तक काम करती है। आपके कॉन्फिगरेशन के काम करने के लिए, आपको पहले वह नियम निर्दिष्ट करना होगा जो सभी उपयोगकर्ताओं पर लागू होता है। फिर आप उसके नीचे एकल उपयोगकर्ता को लक्षित करने वाला नियम निर्दिष्ट कर सकते हैं।
2. क्या एक ही सिस्टम में sudo और doas को बनाए रखना संभव है?
हां! Doas और sudo दो अलग-अलग प्रोग्राम हैं। वे एक दूसरे के साथ संघर्ष नहीं करते, और सिस्टम पर sudo को छोड़ना और doas का उपयोग करना ठीक है।
3. क्या doas का उपयोग करके रूट शेल प्राप्त करना संभव है?
हां, बशर्ते आपने अपनी कॉन्फिगरेशन फाइल को ठीक से कॉन्फिगर किया हो। आप doas -s चलाकर रूट शेल शुरू कर सकते हैं।