여러 플랫폼에서 비밀번호 변경

여러 플랫폼에서 비밀번호 변경

passwd우리는 *nix 비밀번호 변경을 표준화하려고 노력하고 있습니다 . Linux에서는 간단한 질문입니다.

printf "secret\nsecret\n" | passwd username

passwd그러나 FreeBSD는 이 라이브러리를 사용하기 위해 버전을 다시 작성했습니다 pam . 시스템 pamopenpam_ttyconv암호를 읽으면 표준 입력을 리디렉션하려는 관리자의 시도를 물리치기 위해 몇 가지 어려움을 겪게 됩니다.

FreeBSD에서 위의 방법을 시도하면 여전히 tty에 메시지를 표시하고 대화형 응답을 기다립니다. stdin을 분기하여 강제로 리디렉션하려고 하면 다음과 같은 메시지가 표시됩니다.pam_chauthtok: conversation failure

내가 아는 한, FreeBSD에서는 다음을 사용할 수 있습니다.

printf "secret\nsecret\n | pw usermod -n username -h0

하지만 누군가 pam 라이브러리가 stdin 리디렉션을 허용하도록 하는 방법을 알 수 있기를 바라고 있습니다.

답변1

당신은 그것을 사용할 수 있습니다chpass*BSD 및 유사한 유틸리티의 스크립트에서 비밀번호 변경chpasswd리눅스에서. 두 가지 모두 귀하의 계정에 "암호화된" 비밀번호를 설정할 수 있게 해줍니다 - 효과적으로비밀번호 해시. 전화해도됩니다crypt해시를 계산하는 Perl 또는 Python 스크립트의 함수(해시 함수, 임의 솔트 및 적절한 반복 횟수를 선택하는 것을 잊지 마십시오).

답변2

대화형 비밀번호 입력과 관련된 질문에 대한 표준 대답은 다음을 사용하는 것입니다.예상되는이 경우 passwd 명령을 실행하십시오.

관련 정보