2010-01-13 5 views
6

busyboxopenssl이 설치된 시스템에서 사용자 계정과 암호를 외부 소스와 동기화해야합니다. 외부 소스가 내 시스템에 자격 증명을 업데이트하도록 지시하면 스크립트에서 사용자 비밀번호를 어떻게 변경합니까? 일반 텍스트로 암호를 갖습니다.busybox 및 openssl을 사용하여 스크립트에서 사용자 비밀번호를 어떻게 변경합니까?

이 작업은 자동화되어야하며 busybox passwd는 대화 형이며 특히 passwd 용 expect-type 스크립트를 작성하고 싶지는 않습니다. openssl이 암호 해시 (openssl passwd -1 -salt "abcdefgh"(암호))를 생성 할 수 있지만/etc/shadow를 직접 수정해야합니까?

Busybox는 these 명령을 사용할 수 있습니다.

답변

6

이렇게 작은 스크립트를 작성하여 암호를 업데이트 할 수 있습니다. 다음 텍스트를 파일에 넣고 실행하십시오. 암호가 변경됩니다.

#!/빈/SH
passwd를 < < EOF
< 이전 암호 >
< 새 비밀번호 >
< 새 비밀번호 >
EOF

5

현재 버전의 busybox는 chpasswd (source code)입니다. chpasswd는 콜론으로 구분 된 쌍인 username : password를 stdin에 사용합니다. 내 시스템에서 busybox를 업데이트 할 수 있는지 여부는 알 수 없지만 다른 사람이 볼 때이 답을 남겨 둘 것입니다.

chpasswd 
chpasswd [--md5|--encrypted] 

Read user:password from stdin and update /etc/passwd 

Options: 

     -e,--encrypted Supplied passwords are in encrypted form 
     -m,--md5  Use MD5 encryption instead of DES 
다음 비지 박스 문서에서