एक ठेस सर्वर तक पहुँचने के लिए कारण लॉग करने के लिए sysadmins के लिए मजबूर करने के लिए एक तकनीक की आवश्यकता है


17

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

मेरा पहला विचार उपयोगकर्ता के शेल को एक स्क्रिप्ट में बदलना था जो कुछ ऐसा करता है

vim /logs/logindate.txt 
bash -l

क्या एक बेहतर या अधिक मानक तकनीक है?

नोट: यह विचार यह है कि ये उपयोगकर्ता sysadmins हैं और सिस्टम को बिना सबमिशन किए लॉग एंट्री करना चाहेंगे- वे अक्सर ऐसा करना भूल जाते हैं। इसलिए, अगर वे इसे ctrl-c कर सकते हैं, तो ठीक है ... हम मान रहे हैं कि वे नहीं करेंगे।


6
आप वर्कफ़्लो / प्रक्रियात्मक समस्या का तकनीकी समाधान खोजने का प्रयास कर रहे हैं। IMHO, इस तरह के प्रयास को विफल करने के लिए बर्बाद किया जाता है, और वास्तविक वर्कफ़्लो / प्रक्रियात्मक मुद्दे को गैर-तकनीकी साधनों के माध्यम से सीधे संबोधित किया जाना चाहिए।
जॉन

11
धन्यवाद दोस्त। मैं एक व्यवहार परिवर्तन को बढ़ावा देने के लिए प्रौद्योगिकी का उपयोग करने की कोशिश कर रहा हूं। मुझे लगता है कि मैं हर बार उन्हें भूल जाने पर उन्हें एक चट्टान के साथ क्लब कर सकता हूं, लेकिन मुझे लगता है कि एचआर तकनीकी दृष्टिकोण को प्राथमिकता देता है।

8
@ जॉन्स वर्कफ़्लोज़ में लागू करने और सहायता करने के लिए प्रौद्योगिकी के उद्देश्य का हिस्सा नहीं है?
माइकल मार्टिनेज

1
समाप्ति तक और सहित अनुशासनात्मक कार्रवाई।
माइकल हैम्पटन

4
हां, लेकिन सवाल यह नहीं था कि "क्या आपको यह करना चाहिए?" सवाल था, "क्या आप इसे कर सकते हैं?" एक मूल्य निर्णय है; एक इस मंच के योग्य एक तकनीकी प्रश्न है। मुझे अपनी टीम का प्रबंधन करने की अपनी क्षमता पर भरोसा है। मैं बड़ी सफलता के साथ चट्टान का उपयोग कर सकता था, लेकिन इतना खून। मुझे अच्छा बनना पसंद है। मेरे पास अच्छे भुलक्कड़ लोग हैं। :) लगता है कि @ aaron-copley इस समय आदमी है। सबको धन्यवाद!

जवाबों:


19

Pam_exec.so को देखें । आप PAM के सिस्टम-ऑर्ट के सत्र इंटरफ़ेस में लॉगिन पर एक स्क्रिप्ट चला सकते हैं। उपयोगकर्ता को शेल मिलने से पहले स्क्रिप्ट रूट के रूप में चलती है, इसलिए यह इनपुट को कैप्चर नहीं कर सकता है read? यद्यपि, आप readउपयोगकर्ता से एक कारण प्राप्त करने के लिए प्रयास कर सकते हैं और एक loggerबयान के साथ इसे लॉग इन कर सकते हैं । (मैंने नीचे छोड़ दिया है, लेकिन आप बिना किसी कारण के किसी को बाहर निकलने से रोकने के लिए CTRL + C ट्रैप कर सकते हैं।) $ PAM_USER लॉगिंग करने वाले व्यक्ति के लिए सेट किया जाएगा, ताकि आप लकड़हारे के बयान में इसे शामिल कर सकें।

उदाहरण:

/Etc/pam.d/system-auth में सत्र के शीर्ष पर:

session required pam_exec.so /usr/local/sbin/getreason

और / usr / स्थानीय / sbin / getreason:

#!/bin/bash
read -p "Reason for logging into production: " reason
logger -t $(basename $0) "$PAM_USER logged in with reason: ${reason}"

माफी अगर यह पूरी तरह से काम नहीं करता है। मैंने इसका परीक्षण नहीं किया, लेकिन हाल ही में कुछ ऐसा ही किया है। (इसने इनपुट पर कब्जा नहीं किया।)


संपादित करें: जितना अधिक मैं इस बारे में सोचता हूं, उतना अधिक मुझे नहीं लगता कि यह उस चरण के कारण काम करेगा जिसमें यह चलता है। एक ही getreasonआप की जगह के बाद स्क्रिप्ट काम करना चाहिए $PAM_USERके साथ $(logname)है, लेकिन यह में निष्पादित करने के लिए आवश्यकता हो सकती है /etc/profile। (इंटरेक्टिव शेल के लिए परीक्षण, पहले)

मैं दोनों विकल्पों को छोड़ दूंगा क्योंकि यह कम से कम आपको सही दिशा में सोच रहा है अगर कुछ और नहीं चाहिए।


1
इस के लिए बहुत बहुत धन्यवाद। यह सही लग रहा है। यदि और कुछ नहीं तो मैं इनपुट पर कब्जा करने के लिए सी में एक छोटी सी बात लिख सकता हूं। मैं इसे लागू करूंगा और आपको बता दूंगा कि क्या यह काम करता है।

1
@BiggyDevOPs: उपयोगी सुझाव: यदि आप लॉग रखने के लिए एक फ्लैट फ़ाइल का उपयोग करते हैं, तो इसे git या svn में रखें ताकि आपका एक इतिहास हो
माइकल मार्टिनेज

7

विकल्प एक विशेषाधिकार प्राप्त खाता प्रबंधन समाधान है, जहां व्यवस्थापकों को अपने स्वयं के खाते के साथ पहुंच देने के बजाय, व्यवस्थापक खातों को तीसरे पक्ष द्वारा एस्क्रौ में रखा जाता है और उत्पादन प्रक्रिया http: // en तक पहुंचने से पहले अनिवार्य प्रक्रियाओं का पालन करना पड़ता है । m.wikipedia.org/wiki/Privileged_Identity_Management


0

इसे पूरा करने का एक और तरीका यह होगा कि आपकी केंद्रीकृत-लॉगिंग सुविधा हो (मैं सोच रहा हूं कि लॉगस्टैश, लेकिन आप इसे अन्य तरीकों से भी कर सकते हैं) अपने ऑर्गेनाइज़ेशन को प्रोडक्शन सिस्टम पर ले जाएं, एक ऐप में फीड करें जहां लोग अपने औचित्य को लॉग इन कर सकें। ।


0

जिस तरह से मैंने इसे एचपी सर्वर ऑटोमेशन * चलाने वाले ग्राहकों पर लागू किया है, वह यह है कि वे उपकरण के सहज लॉग ऑन पर अनुमोदन चरणों के संयोजन के साथ भरोसा करते हैं (मैं कई ग्राहकों के लिए रहा हूं जहां देवता के अलावा कोई sudo या रूट निजी नहीं हैं )।

अनुमोदन या संचालन आर्केस्ट्रा, या एसए के अंदर प्रशासनिक लॉगिन आदि जैसे कुछ के माध्यम से किया जा सकता है।

यह सब कहा जा रहा है, उद्यम स्वचालन और प्रबंधन उपकरणों के बाहर, @ हारून कोपले का उत्तर एक उत्कृष्ट विकल्प है।


* मैं एक वरिष्ठ एचपीएसए, एचपीओओ, और एचपी ऑटोमेशन सूट कंसल्टेंट के अन्य पहलू हूं


0

समाधान की तलाश करते हुए, मैंने हारून कोपले के उत्तर को पढ़ा और सोचा: "अगर मैं अपने उपयोगकर्ता के खोल को बदल दूं तो क्या होगा?"

मैंने इसे अपने Ubuntu 14.04 मशीन पर सफलतापूर्वक किया:

# usermod -s /usr/bin/loginScript username

अपनी स्क्रिप्ट पर आप बस लॉगिन के कारण को पकड़ सकते हैं। मेरा इस तरह है:

#!/bin/bash
read -p "Tell me why you logged in:" reason
echo "You told me: $reason" >> /var/log/reasonLogin.log
/bin/bash

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

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