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

Python에서 암호 데이터베이스에 액세스

<시간/>

암호 데이터베이스에 액세스하려면 pwd 모듈을 사용해야 합니다. 이 모듈을 사용하여 사용자 계정 및 암호 데이터베이스에 액세스할 수 있습니다. 비밀번호 데이터베이스 항목은 튜플과 같은 개체입니다.

pwd 모듈을 사용하려면 다음을 사용하여 가져와야 합니다.

import pwd

비밀번호 데이터베이스의 속성은 -

색인 속성 및 설명
0 pw_name
로그인 이름 또는 사용자의 사용자 이름
1 pw_passwd
암호화된 비밀번호
2 pw_uid
사용자의 숫자 ID
3 pw_gid
사용자 그룹의 숫자 ID
4 pw_gecos
사용자 이름 및 설명 필드
5 pw_dir
사용자의 홈 디렉토리
6 pw_shell
사용자 명령 인터프리터.

참고 − 일반적으로 pw_passwd는 암호화된 암호를 보유합니다. 그러나 새 시스템에서는 섀도우 암호 시스템을 사용합니다. 이제 pw_passwd에서 '*' 또는 'x' 기호만 찾을 수 있습니다.

이 모듈의 일부 방법은 -

메서드 pwd.getpwuid(uid)

이 메서드는 주어진 숫자 사용자 ID에 대한 암호 데이터베이스 항목을 반환합니다.

메서드 pwd.getpwnam(이름)

이 메서드는 주어진 사용자 이름에 대한 암호 데이터베이스 항목을 반환합니다.

메서드 pwd.getpwall()

이 메서드는 모든 암호 데이터베이스 항목을 반환합니다.

예시 코드

import pwd
print("Root: " + str(pwd.getpwnam('root')) + '\n') #Password detail for root
for entry in pwd.getpwall():
   print("Name: " + entry[0] + "\t\tShell: " + entry.pw_shell)

출력

$ 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')

Name: root       Shell: /bin/bash
Name: daemon       Shell: /usr/sbin/nologin
Name: bin       Shell: /usr/sbin/nologin
Name: sys       Shell: /usr/sbin/nologin
Name: sync       Shell: /bin/sync
Name: games       Shell: /usr/sbin/nologin
Name: man       Shell: /usr/sbin/nologin
…….
…….
…….