फिर भी एक अन्य विकल्प @ जगदीश के उत्तर का एक प्रकार है : strace
ssh डेमॉन के लिए।
इसका महत्वपूर्ण लाभ है, कि हमें sshd को रोकने की आवश्यकता नहीं है, अगर कुछ बुरी तरह से हो जाता है तो एक पूर्ण तालाबंदी का क्या परिणाम हो सकता है।
सबसे पहले, हम मुख्य sshd प्रक्रिया के pid पाते हैं। यहाँ हम इसे निष्पादित करके देख सकते हैं a pstree -pa|less
।
|-sshd,633 -D <-- THIS IS WHAT WE WANT!
| `-sshd,21973
| `-sshd,21996
| `-bash,22000
| `-screen,638 -r
यह जानने के बाद, कि पिड 633 है, हम strace
इसके बच्चों का पालन कर सकते हैं :
strace -p 633 -s 4096 -f -o sux
इसका परिणाम यह होगा कि सब कुछ जो इस sshd, और इसके बच्चे की प्रक्रियाओं ने किया है, sux
स्थानीय निर्देशिका में नामित फ़ाइल में स्ट्रेस-एड होगा ।
फिर समस्या को पुन: पेश करें।
इसमें कर्नेल कॉल लॉग की एक विशाल सूची होगी, जो कि हमारे लिए ज्यादातर असाध्य / अप्रासंगिक है, लेकिन हर जगह नहीं। मेरे मामले में, यह महत्वपूर्ण बात थी:
6834 sendto(4, "<38>Jan 15 18:49:21 sshd[6834]: User cica not allowed because account is locked\0", 84, MSG_NOSIGNAL, NULL, 0) = 84
इसका मतलब था, कि sshd ने उस संदेश को लॉग इन करने की कोशिश की, जिसे उपयोगकर्ता cica ने अनुमति नहीं दी क्योंकि खाता बंद है - यह केवल नहीं कर सकता, क्योंकि लॉगिंग उसके लिए पर्याप्त क्रिया नहीं है। लेकिन हम पहले से ही जानते हैं, पब को अस्वीकार कर दिया गया था क्योंकि खाता बंद था।
यह अभी तक एक समाधान नहीं है - अब हमें Google की जरूरत है, जो sshd के मामले में "लॉक खाता" है। यह सबसे अधिक संभावना है कि कुछ तुच्छ /etc/passwd
, /etc/shadow
जादूगर हो जाएगा, लेकिन महत्वपूर्ण बात यह है - समस्या एक रहस्यमय नहीं है, लेकिन एक आसानी से बहस योग्य / googlable है।