Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

เข้าถึงฐานข้อมูลรหัสผ่านใน Python


ในการเข้าถึงฐานข้อมูลรหัสผ่าน เราควรใช้โมดูล pwd โดยใช้โมดูลนี้ เราสามารถเข้าถึงบัญชีผู้ใช้และฐานข้อมูลรหัสผ่าน รายการฐานข้อมูลรหัสผ่านเป็นเหมือนทูเพิลเหมือนวัตถุ

ในการใช้โมดูล pwd เราควรนำเข้าโดยใช้

import pwd

คุณสมบัติของฐานข้อมูลรหัสผ่านคือ −

ดัชนี แอตทริบิวต์ &คำอธิบาย
0 pw_name
ชื่อล็อกอินหรือชื่อผู้ใช้ของผู้ใช้
1 pw_passwd
รหัสผ่านที่เข้ารหัส
2 pw_uid
ID ตัวเลขสำหรับผู้ใช้
3 pw_gid
ID ตัวเลขสำหรับกลุ่มผู้ใช้
4 pw_gecos
ชื่อผู้ใช้และช่องแสดงความคิดเห็น
5 pw_dir
โฮมไดเร็กทอรีของผู้ใช้
6 pw_shell
ล่ามคำสั่งของผู้ใช้

หมายเหตุ − โดยทั่วไป pw_passwd จะเก็บรหัสผ่านที่เข้ารหัสไว้ แต่ในระบบใหม่พวกเขาใช้ระบบรหัสผ่านเงา ดังนั้นใน pw_passwd เราจึงพบเพียงสัญลักษณ์ '*' หรือ 'x' เท่านั้น

วิธีการบางอย่างของโมดูลนี้คือ −

วิธีการ pwd.getpwuid(uid)

เมธอดนี้จะส่งคืนรายการฐานข้อมูลรหัสผ่านสำหรับ ID ผู้ใช้ที่เป็นตัวเลขที่ระบุ

วิธีการ pwd.getpwnam(ชื่อ)

วิธีนี้จะคืนค่ารายการฐานข้อมูลรหัสผ่านสำหรับชื่อผู้ใช้ที่กำหนด

วิธีการ pwd.getpwall()

วิธีนี้จะคืนค่ารายการฐานข้อมูลรหัสผ่านทั้งหมด

โค้ดตัวอย่าง

import pwd
print("Root: " + str(pwd.getpwnam('root')) + '\n') #Password detail for root
for entry in pwd.getpwall():
   print("Name: " + entry[0] + "\t\tShell: " + entry.pw_shell)

ผลลัพธ์

$ python3 example.py
Root: pwd.struct_passwd(pw_name='root', pw_passwd='x', pw_uid=0, pw_gid=0, pw_gecos='root', pw_dir='/root', pw_shell='/bin/bash')

Name: root       Shell: /bin/bash
Name: daemon       Shell: /usr/sbin/nologin
Name: bin       Shell: /usr/sbin/nologin
Name: sys       Shell: /usr/sbin/nologin
Name: sync       Shell: /bin/sync
Name: games       Shell: /usr/sbin/nologin
Name: man       Shell: /usr/sbin/nologin
…….
…….
…….