Để 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ục | Thuộc tính & Mô tả |
|---|---|
| 0 | pw_name – Tên đăng nhập (username) |
| 1 | pw_passwd – Mật khẩu mã hóa |
| 2 | pw_uid – ID số cho người dùng |
| 3 | pw_gid – ID số cho nhóm của người dùng |
| 4 | pw_gecos – Tên người dùng và trường comment |
| 5 | pw_dir – Thư mục home của người dùng |
| 6 | pw_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 ………… ………… …………