उन सभी तरीकों को कैसे खोजें, जिनमें यूनिक्स उपयोगकर्ता खाता बंद है


12

मैं कभी-कभार खुद को ऐसी स्थिति में पाता हूं, जहां एक अल्प विकसित प्रणाली में एक खाता होता है जिसे बंद कर दिया गया है। समस्या यह है कि एक खाते को बंद करने के कई तरीके हैं, जिनमें से प्रत्येक को अनलॉक करने का अपना तरीका है।

ऐसा नहीं है कि खाते को अनुचित तरीके से बंद किया जा रहा है, सिर्फ अप्रत्याशित रूप से, लेकिन रीसेट करने के लिए सही लॉक ढूंढना मुश्किल है।

इस समस्या का मेरा सबसे हालिया हमला एक SUSE प्रणाली पर था, और यह पता चला कि पासवर्ड समाप्त हो गया था (जो शुरू में ज्ञात नहीं था क्योंकि लॉगिन प्रयास एक प्रणाली के माध्यम से नहीं थे जो उस तरह की प्रतिक्रिया प्रदान करते थे), और फिर लॉक भी किया गया। असफल लॉगिन प्रयासों के कारण।

क्या अलग-अलग संभावित अकाउंट लॉक के सभी में कहीं न कहीं एक सूची है और उन्हें कैसे निष्क्रिय करना है? मैं इस समस्या के दायरे से बाहर होने के लिए वास्तविक टूटने का इरादा कर रहा हूं, जैसे कि होम डाइरेक्टरी एक्सेस समस्याएं, भ्रष्ट PAM लाइब्रेरी आदि।

जवाबों:


13

passwdयदि कोई खाता लॉक है, तो आप कुछ जानकारी इकट्ठा करने के लिए उपयोग कर सकते हैं

passwd -S user
user LK 2012-11-06 0 99999 7 -1 (Password locked.) (CentOS)
user L 01/22/2013 0 99999 7 -1 (Ubuntu)

chageउपयोगिता एक असमाप्त पासवर्ड के लिए एक खाता जैसे पर विभिन्न टाइमर के बारे में जानकारी प्रदान करेगा

chage -l user
Last password change                                    : Nov 12, 2012
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 0
Maximum number of days between password change          : 99999
Number of days of warning before password expires       : 7

एक समाप्त पासवर्ड के लिए

chage -l user
Last password change                                    : password must be changed
Password expires                                        : password must be changed
Password inactive                                       : password must be changed
Account expires                                         : never
Minimum number of days between password change          : 0
Maximum number of days between password change          : 22
Number of days of warning before password expires       : 33

passwdऔर chageउपयोगिताओं को भी ध्यान ताले के कई की सूची।

आप getentपरीक्षा के लिए प्रासंगिक डेटाबेस से सीधे जानकारी खींचने के लिए उपयोग कर सकते हैं

getent passwd user
user:x:505:505::/home/passtest:/sbin/nologin  <-- denied login
getent shadow user
user:!!:0:0:22:33:44::   <-- this is locked

7

सामान्य तौर पर: नहीं।

Iain का जवाब इस बात का एक अच्छा सारांश है कि पासवर्ड एजिंग सिस्टम को कैसे क्वेरी किया जाए, लेकिन सभी प्रकार की चीजों को याद किया। उदाहरण के लिए:

  • किसी व्यक्ति को ssh के माध्यम से लॉग इन करने की कोशिश करना sshdविन्यास में निर्देशों द्वारा निषिद्ध हो सकता है।
  • एक सिस्टम को केवल एक निश्चित नेटग्रुप के सदस्यों को लॉगिन करने की अनुमति देने के लिए कॉन्फ़िगर किया जा सकता है।
  • स्थानीय PAMकॉन्फ़िगरेशन में लॉग इन करने के लिए स्पष्ट समूह सदस्यता की आवश्यकता हो सकती है, या केवल उपयोगकर्ताओं की एक विशेष सूची की अनुमति दे सकती है।
  • क्या लगता है कि एक लॉक किया गया खाता होम डायरेक्ट्री एक्सेस समस्याओं का कारण बन सकता है।
  • किसी ने बनाया हो सकता है /etc/nologin, जो कुछ अनुप्रयोगों (जैसे ssh) के लिए सभी उपयोगकर्ताओं को बंद कर देगा।

दूसरे शब्दों में, किसी खाते को लॉक करने के कई तरीके हैं जिनका passwdफ़ाइल से कोई लेना-देना नहीं है । आपका सबसे अच्छा दांव चेक /var/log/secureया वितरण-उपयुक्त स्थानीय एनालॉग है।


मैं अपना प्रश्न मानने का इरादा कर रहा था कि चीजें "टूटी हुई" नहीं थीं और उपयोगकर्ता पहले ही लॉग इन करने में सक्षम था। यही है, कि कुछ सिस्टम कार्यप्रणाली ने खाते को ठीक से बंद कर दिया है। ये अच्छे अंक हैं, लेकिन मैं इस सवाल को थोड़ा और स्पष्ट करूंगा।
wfaulk

1

उपरोक्त के अलावा, passwd chageऔर getent, वहाँ भी हैpam_tally2

यदि असफल लॉगिन प्रयासों की संख्या स्वीकार्य सीमा से अधिक है (जो /etc/pam.d/password-auth में सेट है), तो आपको pam_tally2 --user=foo --resetउन्हें दोबारा लॉगिन करने से पहले करना होगा ।


0

निम्नलिखित स्क्रिप्ट आपको सभी उपयोगकर्ताओं और उनकी स्थिति (लॉक या नहीं) का संक्षिप्त विवरण देगी

cat /etc/passwd | cut -d : -f 1 | awk '{ system("passwd -S " $0) }'

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