답변:
둘 다에 대한 매뉴얼 페이지를 참조하십시오.
이름
chpasswd-배치 모드에서 비밀번호 업데이트
개요
chpasswd
[옵션]기술
이
chpasswd
명령은 표준 입력에서 사용자 이름 및 비밀번호 쌍 목록을 읽고이 정보를 사용하여 기존 사용자 그룹을 업데이트합니다. 각 줄의 형식은 다음과 같습니다.user_name : 비밀번호
이름
passwd-사용자 비밀번호 변경
개요
passwd
[옵션] [로그인]기술
이
passwd
명령은 사용자 계정의 비밀번호를 변경합니다. 일반 사용자는 자신의 계정 암호 만 변경할 수 있지만 수퍼 유저는 모든 계정의 암호를 변경할 수 있습니다.passwd
또한 계정 또는 관련 비밀번호 유효 기간을 변경합니다.
간단히 말해서 :
passwd
를 사용하여 STDIN (파일 설명자 0)이 터미널에 연결되어 있는지 확인합니다 isatty(0)
. 그렇지 않다면 passwd
구제 될 것입니다. 즉 , passwd
대화식으로 만 작업 할 수 있습니다
chpasswd
반면에는 STDIN에서 (사용자 이름 및) 비밀번호를 읽도록 설계되었으며 배치 모드라고합니다 (한 번에 여러 사용자 자격 증명을 생성 / 업데이트합니다). STDIN에서 비밀번호 (기본적으로 일반 텍스트로)와 형식으로 제공된 사용자 이름을 읽어 user_name:password
행을 항목으로 구분합니다.
나는 그것을 찾았지만
echo user:password | chpasswd
일부 OS에서는 작동하지만 debian9,10과 같은 일부 OS는 can not connect to /var/run/nscd/socket
/etc/nsswitch.conf를 사용하여 비밀번호를 저장할 위치를 결정하므로 오류를 표시 합니다.
다른 한편으로, passwd
명령에는 대화식 쉘이 필요하지 않은 것 같습니다.
(echo user; echo password) | passwd
물리적 호스트와 컨테이너 모두에서 다양한 OS (ubuntu xenial-bionic, debian9-10, centos75-76, coreos1855-2135)에서 작동합니다.
/etc/password
사용자 계정 정보를 포함합니다./etc/shadow
암호화 된 비밀번호를 포함합니다. 나는 이것들이 관련있는 유일한 파일이라고 생각합니다. 해당 파일을 수동으로 편집하여 비밀번호를 변경할 수 있지만 매우 어색합니다.