सप्ताह में एक दिन के लिए सूडर्स?


10

मैं अपने मालिक द्वारा स्वेच्छा से हमारे उत्पादन redhat सर्वर के लिए किया गया है। उन्होंने मुझसे कहा कि सुरक्षा को और कड़ा करने से बचने के लिए कहें, जैसे rm -f *कि बहुत पहले नहीं हुआ था।

अभी, हमारे पास 53 उपयोगकर्ता sudo-ing मशीन में हैं और यह एक ऑडिट बुरा सपना है। मैं सोच रहा था कि क्या केवल सप्ताह के विशिष्ट दिनों में उपयोगकर्ता की अनुमति देना संभव है।

उदाहरण के लिए, क्या मैं उपयोगकर्ता 'जो' को केवल मंगलवार और गुरुवार को लॉगिन करने की अनुमति दे सकता हूं और केवल रविवार को 'जेन'? etc/sudoersयह अनुमति देने के लिए अनुकूलित किया जा सकता है?

वहाँ sudoers का उपयोग करने के बजाय एक बेहतर तरीका है?


10
मैं मैनुअल पेज नहीं पढ़ने की सलाह दूंगा।
Xkcd

3
नहीं, मैं उसे मैनुअल नहीं पढ़ने के लिए कह रहा हूं क्योंकि IMHO को पढ़ना असंभव है। अगर पढ़ने में आसान होता तो ओपी को शायद मैन पेज में जवाब मिल जाता।
user60684

10
आप ऐसा कर सकते हैं, लेकिन इस बात का ध्यान रखें कि उपयोगकर्ता जिस दिन भी रूट करते हैं, अपने आप को ऑल-टाइम सूडो एक्सेस वापस दे सकते हैं।
निक मैट्टो

2
@ Mark0978 अगर आपको कंपनी का नाम पता होता, तो आप शायद अपना सिर काट कर हंसते हुए मर जाते। यह एक अपमान है कि यह अनुमति है ... एक उत्पादन सर्वर पर।
क्रिस

3
यह मूर्खतापूर्ण लगता है। इसका मतलब सिर्फ यह है कि बिल को चलाने के लिए अपने बुधवार की सुबह के समय के लिए इंतजार करना होगा rm -rf /
माइकल हैम्पटन

जवाबों:


21

sudo PAM के माध्यम से इसका प्रमाणीकरण करता है, जैसे लिनक्स बॉक्स पर सब कुछ।

तो आपको ऐसा करने के लिए उपयोग pam_time.soकरने में सक्षम होना चाहिए ।

कम से कम डेबियन पर डिफ़ॉल्ट रूप से, वह मॉड्यूल सक्षम नहीं है। आपको एक पंक्ति जोड़ने की जरूरत है जो इस तरह दिखती है:

account    requisite  pam_time.so

या तो सिस्टम पर सभी प्रोग्राम के लिए सक्षम करने के लिए /etc/pam.d/sudoया केवल sudo के लिए सक्षम करने के लिए या /etc/pam.d/common-account(पैम-कोर-अपडेट ब्लॉक के बाद)।

फिर /etc/security/time.confअपने प्रतिबंध सेट करने के लिए संपादित करें । सेवा का नाम होना चाहिए sudo। उदाहरण के लिए, sudoशुक्रवार को फ्रेड को केवल 3pm और 5pm के बीच उपयोग करने की अनुमति देने के लिए :

sudo;*;fred;Fr1500-1700

(नोट: मैंने इसका परीक्षण नहीं किया है।)

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


पीएएम लागू करने के लिए जटिल लगता है, लेकिन यह भी सख्त नियंत्रण की अनुमति देता है कि कौन क्या और कब करता है। स्वीकार किया और मतदान किया। धन्यवाद।
क्रिस

2
मुझे नहीं लगता कि उसे प्रोत्साहित करना सही उत्तर है, IMAO इस प्रश्न का सही उत्तर है "रन फॉर द एचएसएस !!!! १! १! १! १"
ओ ० '।

क्या यह वास्तव में काम करता है? मैं विभिन्न लॉगिन तंत्र जैसे "लॉगिन", "ssh", "gdm", "su" को pam_time.so का उपयोग कर नियंत्रित करने में सक्षम हूं, लेकिन यह sudo के लिए काम नहीं कर रहा है। मैं कार्यालय के समय के बाहर किसी भी सामान्य तंत्र द्वारा किसी को भी जड़ बनने से रोकना चाहता हूं। (मुझे लगता है कि यह बुलेटप्रूफ नहीं है, कोई पहले से सेतु खोल या पिछले दरवाजे को तैयार कर सकता है, लेकिन मुझे उम्मीद नहीं है कि इस स्थिति में होगा।)
सैम वाटकिन्स

20

मैं सवाल करूंगा कि 53 उपयोगकर्ताओं को अपने दिन-प्रतिदिन के काम के लिए सुडो की आवश्यकता क्यों है - अधिकांश उपयोगकर्ताओं (यहां तक ​​कि डेवलपर्स) के लिए, सूडो को एक दुर्लभ अपवाद होना चाहिए, न कि इस तरह की दिनचर्या कि कोई व्यक्ति लापरवाही से एक sudo rm -rf *कमांड चलाएगा ।

क्या आप लोगों को उन फ़ाइलों को एक्सेस करने के लिए समूह अनुमतियाँ (या और भी उन्नत ACL के) का उपयोग कर सकते हैं, जिन्हें उन्हें अपना काम पूरा करने की आवश्यकता है, शायद कुछ सेतु या sudo'ed लिपियों या बायनेरिज़ के साथ उन्हें पुनः आरंभ सेवाओं जैसी चीजें करने दें? (ध्यान दें कि एक सुरक्षित सेतु / सूद लिपि लिखना कठिन है, इसलिए ईमानदार लोगों को ईमानदार रखना अधिक है)।

यहां तक ​​कि अगर आप लोगों को सप्‍ताह के सप्‍ताह के एक दिन के लिए प्रतिबंधित कर सकते हैं, तब भी एक सप्‍ताह के समय में सुडो अभिगमन वाले 53 लोग हैं, इसलिए यह आपकी मूल समस्‍या में मदद नहीं करता है।

इस मामले के लिए, मैं यह सवाल करूंगा कि क्या कई उपयोगकर्ताओं को उत्पादन सर्वर तक पहुंच की आवश्यकता है - क्या आप लॉग-इन कर सकते हैं या गैर-उत्पादन मशीन के लिए जो भी डेटा / फाइलें हैं, उन्हें शिप कर सकते हैं?


या फिर आप लॉग फाइल के लिए किसी तरह की एक्सेस को प्रकाशित कर सकते हैं, जिसकी आवश्यकता हो सकती है, एक क्रोकेट जेल्ड sftp तरह का सेटअप।
बोटकोडर

@ जॉनी इस होस्ट पर किए गए अधिकांश काम शेल स्क्रिप्ट्स को बनाने / संपादित करने और चलाने वाले हैं। उपयोगकर्ताओं को अनुमति नहीं दी जानी चाहिए vi/cp/mv/rm। केवल cdऔर more। और कुछ नहीं।
क्रिस

@ जॉनी यदि मैं एक निर्देशिका पर एक एसीएल सेट करता हूं, तो क्या उस निर्देशिका के भीतर फाइलें डिफ़ॉल्ट रूप से एसीएल की विशेषताओं को विरासत में मिली हैं?
क्रिस

@ क्रिस, यदि आप निर्देशिका के लिए डिफ़ॉल्ट एसीएल सेट करते हैं।
माइकल हैम्पटन

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

7

सबसे आसान तरीका यह होगा कि आप अपने कॉन्फ़िगरेशन के लिए suders.d (throughludedir) का उपयोग करें। तब आपके पास क्रोन नौकरियां हो सकती हैं जो प्रत्येक उपयोगकर्ता के नियमों को उस निर्देशिका में उस समय के लिए रख सकती हैं जो आप चाहते हैं।

#Includedir निर्देश को sudo.d निर्देशिका बनाने के लिए / etc / sudoers में उपयोग किया जा सकता है जिसे आप sudoers नियमों को अपने नियमों के भाग के रूप में छोड़ सकते हैं .. उदाहरण के लिए, दिए गए:

#includedir /etc/sudoers.d

sudo /etc/sudoers.d में प्रत्येक फ़ाइल को पढ़ेगा, जो '~' में समाप्त होने वाले फ़ाइल नामों को छोड़ देता है या जिनमें 'a' होता है। पैकेज प्रबंधक या संपादक अस्थायी / बैकअप फ़ाइलों के साथ समस्याएं पैदा करने से बचने के लिए चरित्र। फ़ाइलों को क्रमबद्ध शाब्दिक क्रम में पार्स किया जाता है। यही है, /etc/sudoers.d/01_first को /etc/sudoers.d/10_second से पहले पार्स किया जाएगा। ध्यान रखें कि क्योंकि छँटाई लेक्सिकल है, संख्यात्मक नहीं, /etc/sudoers.d/1_whoops /etc/sudoers.d/10_second के बाद लोड किया जाएगा। इस तरह की समस्याओं से बचने के लिए फ़ाइल नामों में अग्रणी शून्य का उपयोग करना।

ध्यान दें कि #include के माध्यम से शामिल फ़ाइलों के विपरीत, visudo एक #includedir निर्देशिका में फ़ाइलों को संपादित नहीं करेगा जब तक कि उनमें से एक में सिंटैक्स त्रुटि न हो। फ़ाइलों को सीधे संपादित करने के लिए tof ध्वज के साथ विस्कोस को चलाना संभव है।

/etc/sudoers.d/joe तब मौजूद होगा जब आप चाहते हैं कि joe की पहुँच हो और आप फ़ाइल को हटा सकते हैं।


1
मुझे अपने उपयोगकर्ता विशिष्ट sudoers फ़ाइलों के साथ एक समस्या थी: 'sudoers.user1' आदि। आप 'और' और '' के बारे में टिप्पणी करते हैं। पात्रों ने मेरी समस्या हल कर दी। मुझे खुशी है कि आपने मैनुअल पढ़ा! धन्यवाद।
हान

0

आप एक sudo समूह में उपयोगकर्ताओं को डालने के लिए एक crontab जोड़ सकते हैं, और फिर उस उपयोगकर्ता को बाहर निकालने के लिए एक दूसरा crontab।

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