यूनिक्स शैडो पासवर्ड डेटाबेस तक पहुंचने के लिए, हमें spwd मॉड्यूल का उपयोग करना चाहिए। इस फाइल तक पहुंचने के लिए हमें पर्याप्त विशेषाधिकारों की आवश्यकता होती है। शैडो पासवर्ड डेटाबेस एंट्रीज टपल-जैसे ऑब्जेक्ट की तरह हैं।
spwd मॉड्यूल का उपयोग करने के लिए, हमें इसे आयात करना चाहिए:
import spwd
शैडो पासवर्ड डेटाबेस के एट्रिब्यूट्स हैं:
| इंडेक्स | एट्रिब्यूट और विवरण |
|---|---|
| 0 | sp_nam उपयोगकर्ता का लॉगिन नाम या यूजरनेम |
| 1 | sp_pwd एन्क्रिप्टेड पासवर्ड |
| 2 | sp_lstchg अंतिम परिवर्तन की तारीख |
| 3 | sp_min पासवर्ड परिवर्तनों के बीच न्यूनतम दिनों की संख्या |
| 4 | sp_max पासवर्ड परिवर्तनों के बीच अधिकतम दिनों की संख्या |
| 5 | sp_warn पासवर्ड बदलने के लिए दिनों की संख्या के बारे में चेतावनी |
| 6 | sp_inact पासवर्ड समाप्त होने के बाद अकाउंट ब्लॉक होने तक के दिनों की संख्या |
| 7 | sp_expire 01/01/1997 से अकाउंट डिसेबल होने तक के दिनों की संख्या |
| 8 | sp_flag रिजर्व्ड |
इस मॉड्यूल के कुछ मेथड्स हैं:
मेथड spwd.getspnam(name)
यह मेथड दिए गए यूजर नेम के लिए शैडो पासवर्ड डेटाबेस एंट्री लौटाएगा।
मेथड spwd.getspall()
यह मेथड सभी उपलब्ध शैडो पासवर्ड डेटाबेस एंट्री लौटाएगा।
उदाहरण कोड
import spwd
print("Root: " + str(spwd.getspnam('root')) + '\n') # रूट के लिए पासवर्ड डिटेल
for entry in spwd.getspall():
print("Name: " + entry[0] + "\t\tPassword: " + entry.sp_pwdp)
आउटपुट
(वांछित आउटपुट प्राप्त करने के लिए, हमें स्क्रिप्ट को sudo मोड में चलाना चाहिए)
$ sudo python3 example.py Root: spwd.struct_spwd(sp_namp='root', sp_pwdp='!', sp_lstchg=17778, sp_min=0, sp_max=99999, sp_warn=7, sp_inact=-1, sp_expire=-1, sp_flag=-1) …….. …….. …….. Name: geoclue Password: * Name: gnome-initial-setup Password: * Name: gdm Password: * Name: unix_user Password: $6$47n9s0Ep$znWkgNtywebHGKq2o6kZKhGOM8ryp8z4/6P6PUE1m.NQ5Erg9aWncNUAGbuNLFNWUO9M9xzKLxRpFGB5md/nu1 Name: mongodb Password: !