Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Truy cập Cơ sở dữ liệu Mật khẩu (Password Database) trong Python

Để truy cập cơ sở dữ liệu mật khẩu, ta nên dùng module pwd. Sử dụng module này, ta có thể truy cập tài khoản người dùng và cơ sở dữ liệu mật khẩu. Các entry của password database là đối tượng kiểu tuple.

Để dùng module pwd, nên nhập bằng:

import pwd

Các thuộc tính của password database:

Chỉ mụcThuộc tính & Mô tả
0pw_name – Tên đăng nhập (username)
1pw_passwd – Mật khẩu mã hóa
2pw_uid – ID số cho người dùng
3pw_gid – ID số cho nhóm của người dùng
4pw_gecos – Tên người dùng và trường comment
5pw_dir – Thư mục home của người dùng
6pw_shell – Trình thông dịch lệnh (shell) của người dùng

Lưu ý – Thông thường, pw_passwd giữ mật khẩu mã hóa. Nhưng trên các hệ thống mới, họ dùng hệ thống shadow password. Vì vậy, trong pw_passwd, ta chỉ tìm thấy ký hiệu ‘*’ hoặc ‘x’.

Một số phương thức của module này:

Phương thức pwd.getpwuid(uid)

Trả về entry password database cho user ID số cho trước.

Phương thức pwd.getpwnam(name)

Trả về entry password database cho tên người dùng cho trước.

Phương thức pwd.getpwall()

Trả về tất cả các entry password database.

Mã ví dụ

import pwd

print("Root: " + str(pwd.getpwnam('root')) + '\n')  # Chi tiết mật khẩu cho root
for entry in pwd.getpwall():
    print("Tên: " + entry[0] + "\t\tShell: " + entry.pw_shell)

Kết quả

$ 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')
Tên: root           Shell: /bin/bash
Tên: daemon         Shell: /usr/sbin/nologin
Tên: bin            Shell: /usr/sbin/nologin
Tên: sys            Shell: /usr/sbin/nologin
Tên: sync           Shell: /bin/sync
Tên: games          Shell: /usr/sbin/nologin
Tên: man            Shell: /usr/sbin/nologin
………… ………… …………