2012-11-25 3 views
4

암호화 된 시스템 사용자 암호를 다른 sha512 암호화 된 암호와 비교하기 위해이 암호를 얻으려고합니다. 나는 pwd를 시도했지만,이 모듈은 사용자 암호를 다루지 않거나 사용 된 시스템이 "너무 현대적"인 것으로 보인다. (debian 압축). 여기에 내가 얻을 수있는 작업은 다음과 같습니다파이썬, 그림자에서 암호화 된 사용자 암호 얻기

import pwd 
username = 'root' #or another user 
pwd_struct = pwd.getpwnam(username) 
print pwd_struct 

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

곳 pw_passwd = 'X'가 아니라 SHA512 문자열입니다. 파이썬 토굴 모듈 (example here)와 이것을 사용하도록

, 나는 예외 "죄송합니다, 그림자 암호를 현재 지원하지 않습니다"= 내 pw_passwd로, 정상, 'X'를 얻었다.

해시 된 암호를 얻는 다른 적절한 방법이 있습니까? 아니면 내 파서를/etc/shadow에 흰색으로 표시해야합니까? 버전 2.5에서 유닉스

새로운 기능 :

답변

2

spwd module

플랫폼을 사용해보십시오.

이 모듈은 Unix 섀도우 암호 데이터베이스에 대한 액세스를 제공합니다. 다양한 유닉스 버전에서 사용할 수 있습니다.

쉐도우 비밀번호 데이터베이스에 액세스 할 수있는 충분한 권한이 있어야합니다 (대개 루트 여야 함).

섀도우 암호 데이터베이스 항목 (아래의 필드 속성 참조) 그 속성 spwd 구조의 구성원에 해당 튜플 같은 객체로보고됩니다 :

>>> import spwd 
>>> spwd.getspnam('root') 
spwd.struct_spwd(sp_nam='root', sp_pwd='!', sp_lstchg=15238, sp_min=0, sp_max=99999, sp_warn=7, sp_inact=-1, sp_expire=-1, sp_flag=-1) 

는 기억, 당신은 읽기 권한이 필요 /etc/shadow이 작동하려면

+0

답장을 보내 주셔서 감사합니다. 나는 실수로 spwd를 일반 사용자로 시도했지만 루트가 아니기 때문에 sp_pwd = []를 얻었습니다. 이는 의미가 있습니다. – ScotchAndSoda

0

google에서 '파이썬'및 '섀도우'라는 용어를 검색하면 첫 번째 결과로 spwd 라이브러리가 반환됩니다.

일반 사용자가 일반 사용자가 암호 파일을 공격하지 못하도록하기 위해 쉐도우 암호가 도입되었으므로 루트와 같은 권한있는 사용자 계정을 통해서만 쉐도우 암호에 액세스 할 수 있습니다.

+0

당신은 mac osx에서 그것을하는 파이썬 모듈을 알고 있습니까? 나는 단지 궁금하다. 고마워. – ScotchAndSoda