ในการเข้าถึงฐานข้อมูลรหัสผ่านเงา UNIX เราควรใช้โมดูล 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 | p_expire จำนวนวันตั้งแต่ 01/01/1997 จนกว่าบัญชีจะถูกปิดการใช้งาน |
| 8 | sp_flag สงวนไว้ |
วิธีการบางอย่างของโมดูลนี้คือ −
วิธีการ spwd.getspnam(ชื่อ)
เมธอดนี้จะส่งคืนรายการฐานข้อมูลรหัสผ่านเงาสำหรับชื่อผู้ใช้ที่ระบุ
วิธีการ spwd.getspall()
เมธอดนี้จะคืนค่ารายการฐานข้อมูลรหัสผ่านเงาที่มีอยู่ทั้งหมด
โค้ดตัวอย่าง
import spwd
print("Root: " + str(spwd.getspnam('root')) + '\n') #Password detail for root
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: !