ইউনিক্স শ্যাডো পাসওয়ার্ড ডেটাবেস এক্সেস করতে হলে, আমাদের spwd মডিউল ব্যবহার করতে হবে। এই ফাইল এক্সেস করার জন্য পর্যাপ্ত প্রিভিলেজ প্রয়োজন। শ্যাডো পাসওয়ার্ড ডেটাবেস এন্ট্রিগুলো টাপল-লাইক অবজেক্ট।
spwd মডিউল ব্যবহার করতে হলে, আমাদের এটি ইম্পোর্ট করতে হবে -
import spwd
শ্যাডো পাসওয়ার্ড ডেটাবেসের অ্যাট্রিবিউটগুলো -
| Index | Attribute & Description |
|---|---|
| 0 | sp_nam ইউজারের লগইন নাম বা ইউজারনেম |
| 1 | sp_pwd এনক্রিপ্টেড পাসওয়ার্ড |
| 2 | sp_lstchg পাসওয়ার্ড পরিবর্তনের শেষ তারিখ |
| 3 | sp_min পাসওয়ার্ড পরিবর্তনের মধ্যে ন্যূনতম দিনের সংখ্যা |
| 4 | sp_max পাসওয়ার্ড পরিবর্তনের মধ্যে সর্বোচ্চ দিনের সংখ্যা |
| 5 | sp_warn পাসওয়ার্ড পরিবর্তনের জন্য দিনের সংখ্যা সম্পর্কে সতর্কতা |
| 6 | sp_inact পাসওয়ার্ড এক্সপায়ার হওয়ার পর অ্যাকাউন্ট ব্লক হওয়া পর্যন্ত দিনের সংখ্যা |
| 7 | p_expire ০১/০১/১৯৯৭ থেকে অ্যাকাউন্ট ডিজেবল হওয়া পর্যন্ত দিনের সংখ্যা |
| 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: !