Computer >> Máy Tính >  >> Lập trình >> Python

Truy cập vào Cơ sở dữ liệu mật khẩu Shadow bằng Python

Để truy cập cơ sở dữ liệu mật khẩu bóng UNIX, chúng ta nên sử dụng mô-đun spwd. Chúng tôi cần có đủ đặc quyền để truy cập tệp này. Các mục nhập cơ sở dữ liệu mật khẩu bóng giống như đối tượng tuple like.

Để sử dụng mô-đun spwd, chúng ta nên nhập nó bằng -

import spwd

Các thuộc tính của cơ sở dữ liệu mật khẩu bóng là -

Chỉ mục Thuộc tính &Mô tả
0

sp_nam

Tên đăng nhập hoặc tên người dùng của người dùng

1

sp_pwd

Mật khẩu được mã hóa

2

sp_lstchg

Ngày thay đổi cuối cùng

3

sp_min

Số ngày tối thiểu giữa các lần thay đổi mật khẩu

4

sp_max

Số ngày tối đa giữa các lần thay đổi mật khẩu

5

sp_warn

Cảnh báo về số ngày thay đổi mật khẩu

6

sp_inact

Số ngày sau khi mật khẩu hết hạn cho đến khi tài khoản bị khóa

7

p_expire

Số ngày kể từ ngày 01/01/1997 cho đến khi tài khoản bị vô hiệu hóa

8

sp_flag

Đặt trước

Một số phương pháp của mô-đun này là -

Phương thức spwd.getspnam (tên)

Phương thức này sẽ trả về mục nhập cơ sở dữ liệu mật khẩu bóng cho tên người dùng đã cho.

Phương thức spwd.getspall ()

Phương thức này sẽ trả về tất cả mục nhập cơ sở dữ liệu mật khẩu bóng có sẵn.

Mã mẫu

import spwd
print("Root: " + str(spwd.getspnam('root')) + '\n') #Password detail for root
for entry in spwd.getspall():
    print("Name: " + entry[0] + "\t\tPassword: " + entry.sp_pwdp)

Đầu ra

(Để có được đầu ra mong muốn, chúng ta nên chạy tập lệnh ở chế độ sudo)

$ sudo python3 example.py
Root: spwd.struct_spwd(sp_namp='root', sp_pwdp='!', sp_lstchg=17778, sp_min=0, sp_max=99999, sp_warn=7, sp_inact=-1, sp_expire=-1, sp_flag=-1)

……..
……..
……..
Name: geoclue        Password: *
Name: gnome-initial-setup        Password: *
Name: gdm        Password: *
Name: unix_user        Password: $6$47n9s0Ep$znWkgNtywebHGKq2o6kZKhGOM8ryp8z4/6P6PUE1m.NQ5Erg9aWncNUAGbuNLFNWUO9M9xzKLxRpFGB5md/nu1
Name: mongodb        Password: !