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 Unix/Linux (pwd)


Mô-đun pwd trong thư viện chuẩn của Python cung cấp quyền truy cập vào cơ sở dữ liệu mật khẩu của tài khoản người dùng trong hệ điều hành Unix/Linux. Các mục trong cơ sở dữ liệu mật khẩu này được lưu trữ như một đối tượng giống tuple. Cấu trúc của tuple tuân theo cấu trúc passwd trong file pwd.h của CPython API:

Chỉ sốThuộc tínhÝ nghĩa
0pw_nameTên đăng nhập
1pw_passwdMật khẩu mã hóa tùy chọn
2pw_uidID người dùng số
3pw_gidID nhóm số
4pw_gecosTên người dùng hoặc trường chú thích
5pw_dirThư mục home của người dùng
6pw_shellTrình thông dịch lệnh của người dùng

Mô-đun pwd định nghĩa các hàm sau:

>>> import pwd
>>> dir(pwd)
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'getpwall', 'getpwnam', 'getpwuid', 'struct_passwd']

getpwnam() - Hàm này trả về bản ghi trong cơ sở dữ liệu mật khẩu tương ứng với tên người dùng được chỉ định.

>>> pwd.getpwnam('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')

getpwuid() - Hàm này trả về bản ghi trong cơ sở dữ liệu mật khẩu tương ứng với UID cho trước.

>>> pwd.getpwuid(0)
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')

getpwall() - Hàm này trả về danh sách các tuple. Mỗi tuple chứa thông tin cấu trúc passwd của mỗi người dùng. Các mục uid và gid trong cấu trúc là số nguyên. Nếu mục tương ứng với tham số truyền vào không tìm thấy, ngoại lệ KeyError được ném ra.

>>> pwd.getpwnam('hello')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: "getpwnam(): name not found: hello"