Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 섀도우 비밀번호 데이터베이스에 대한 액세스

<시간/>

UNIX 섀도우 암호 데이터베이스에 액세스하려면 spwd 모듈을 사용해야 합니다. 이 파일에 액세스하려면 충분한 권한이 필요합니다. 섀도우 비밀번호 데이터베이스 항목은 튜플과 같은 개체입니다.

spwd 모듈을 사용하려면 −

를 사용하여 가져와야 합니다.
import spwd

섀도우 비밀번호 데이터베이스의 속성은 다음과 같습니다. -

색인 속성 및 설명
0

sp_nam

사용자의 로그인 이름 또는 사용자 이름

1

sp_pwd

암호화된 비밀번호

2

sp_lstchg

마지막 변경 날짜

3

sp_min

비밀번호 변경 사이의 최소 일수

4

sp_max

비밀번호 변경 사이의 최대 일수

5

sp_warn

비밀번호 변경 일수에 대해 경고

6

sp_inact

비밀번호가 만료된 후 계정이 차단될 때까지의 일 수

7

p_만료

1997-01-01부터 계정이 비활성화될 때까지의 일 수

8

sp_flag

예약됨

이 모듈의 일부 방법은 -

방법 spwd.getspnam(이름)

이 메소드는 주어진 사용자 이름에 대한 섀도우 비밀번호 데이터베이스 항목을 반환합니다.

방법 spwd.getspall()

이 메서드는 사용 가능한 모든 섀도 암호 데이터베이스 항목을 반환합니다.

예시 코드

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)

출력

(원하는 출력을 얻으려면 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: !