Computer >> 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 nhập trong cơ sở dữ liệu Mật khẩu này được coi là một đối tượng giống như bộ tuple. Cấu trúc của tuple theo cấu trúc passwd tệp pwd.h sau trong API CPython

Chỉ mục Thuộc tính Ý nghĩa
0 pw_name Tên đăng nhập
1 pw_passwd Mật khẩu được mã hóa tùy chọn
2 pw_uid ID người dùng số
3 pw_gid ID nhóm số
4 pw_gecos Tên người dùng hoặc trường nhận xét
5 pw_dir Thư mục chính của người dùng
6 pw_shell Trình thông dịch lệnh người dùng

Mô-đun pwd xác định các chức năng 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 s= '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

>>> 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ề một danh sách các bộ giá trị. Mỗi tuple chứa thông tin cấu trúc mật khẩu của mỗi người dùng. Các mục uid và gid trong cấu trúc là các số nguyên. Nếu không tìm thấy mục nhập tương ứng với tham số đã truyền, thì ngoại lệ KeyError sẽ xuất hiện.

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