अन्य सुझावों के साथ समस्या यह है कि
- वे केवल तब काम करते हैं जब आपके पास कॉर्पोरेट लैन (या वीपीएन) तक पहुंच होती है
- आपको हर समय हर कंप्यूटर पर sudoers फ़ाइल को बनाए रखना होगा
- एक बोनस के रूप में, उन्होंने मेरे लिए काम नहीं किया - बिल्कुल
इसके बजाय, मुझे कुछ ऐसा चाहिए था
- दोनों क्रेडेंशियल और sudo पहुँच को कैश करता है
- केंद्रीय रूप से प्रबंधित है
वास्तविक समाधान SSSD का उपयोग कर रहा है और AD स्कीमा का विस्तार कर रहा है। इस तरह SSSD समय-समय पर sudo सेटिंग्स और उपयोगकर्ता क्रेडेंशियल्स प्राप्त करता है और उनमें से एक स्थानीय कैश रखता है। सुडो नियमों को तब AD ऑब्जेक्ट्स में संग्रहीत किया जाता है, जहाँ आप कंप्यूटर, उपयोगकर्ताओं और आदेशों के नियमों को प्रतिबंधित कर सकते हैं, यहां तक कि - यह सब वर्कस्टेशन पर कभी भी sudoers फाइल को छुए बिना।
सटीक ट्यूटोरियल यहां समझाने के लिए बहुत लंबा है, लेकिन आप यहां चरण-दर-चरण मार्गदर्शिका और स्वचालन के साथ मदद करने के लिए कुछ स्क्रिप्ट पा सकते हैं:
टी एल; डॉ:
ई
Sudo की नवीनतम रिलीज़ को पकड़ो , doc / schema .ctiveDirectory फ़ाइल प्राप्त करें , फिर इसे आयात करें (अपने डोमेन नाम के अनुसार डोमेन पथ को संशोधित करना सुनिश्चित करें):
ldifde -i -f schema.ActiveDirectory -c "CN=Schema,CN=Configuration,DC=X" "CN=Schema,CN=Configuration,DC=ad,DC=foobar,DC=com" -j .
ADSI संपादन के साथ इसे सत्यापित करें: स्कीमा नामकरण संदर्भ खोलें और sudoRole वर्ग देखें।
अब अपने डोमेन रूट पर sudoers OU बनाएं , यह OU आपके सभी लिनक्स वर्कस्टेशन के लिए सभी sudo सेटिंग्स रखेगा। इस OU के तहत, एक sudoRole ऑब्जेक्ट बनाएँ। SudoRole ऑब्जेक्ट बनाने के लिए आपको ADSI एडिट का उपयोग करना होगा, लेकिन एक बार निर्मित होने के बाद, आप इसे संशोधित करने के लिए सक्रिय निर्देशिका उपयोगकर्ता और कंप्यूटर का उपयोग कर सकते हैं ।
मान लेते हैं कि मेरे पास एक कंप्यूटर है जिसका नाम है foo32linux , एक उपयोगकर्ता जिसे stewie.griffin कहा जाता है और मैं उसे उस आज्ञा पर sudo के साथ सभी कमांड चलाने देना चाहता हूं। इस स्थिति में, मैं sudoers OU के अंतर्गत एक sudoRole ऑब्जेक्ट बनाता हूं । सुडोल के लिए आप अपने इच्छित किसी भी नाम का उपयोग कर सकते हैं - जब से मैं प्रति-कंप्यूटर नियमों का उपयोग करता हूं, तब तक मैं कंप्यूटर के नाम के साथ चिपका रहता हूं। अब इसकी विशेषताएं इस प्रकार निर्धारित करें:
- सूदहॉस्ट : foo32linux
- सुडोकमांड : सभी
- sudoUser : stewie.griffin
आदेशों के लिए आप विशिष्ट प्रविष्टियों का उपयोग कर सकते हैं, जैसे / बिन / कम या जो भी।
SSSD
अपने /etc/sssd/sssd.conf में , कम से कम जोड़ें :
[sssd]
services = nss, pam, sudo
[domain/AD.FOOBAR.COM]
cache_credentials = True
SSSD हर कुछ घंटों में अपडेट किए गए नियमों के साथ अपने स्थानीय कैश को रीफ्रेश करता है, लेकिन इसे जांचने का सबसे सरल तरीका है कि कंप्यूटर को केवल रिबूट करें। फिर AD उपयोगकर्ता के साथ लॉग इन करें और जांचें:
sudo -l
इसमें उस उपयोगकर्ता और कंप्यूटर से आपके द्वारा जोड़े गए सभी संबंधित एंट्रीज़ को सूचीबद्ध करना चाहिए। बहुत आसान!
%Domain^Admins ALL=(ALL) ALL