프롬프트없이 passwd를 사용하여 사용자 비밀번호를 설정하는 방법은 무엇입니까? 비밀번호 설정이 포함됩니다. 비밀번호를 묻는 메시지가

시스템에 많은 수의 사용자를 추가하는 스크립트를 작성 중입니다. 여기에는 각 사용자의 기본 비밀번호 설정이 포함됩니다. 비밀번호를 묻는 메시지가 표시되지 않고 사용자 비밀번호를 설정하려면 어떻게해야합니까?

불행히도 passwd는 설정할 새 암호를 나타내는 인수를 사용하지 않는 것 같습니다. 우분투 11.10을 사용하고 있습니다.



답변

usermod를 사용해보십시오 :

usermod --password PASSWORD USERNAME

유일한 것은 이것이 당신이 먼저 생성 해야하는 사전 암호화 된 암호 문자열이 필요하다는 것입니다.


답변

다음 chpasswd명령을 살펴 봐야 합니다 (리눅스 버전에서 사용 가능한 경우).

echo 'userid:newpasswd' | chpasswd

또는 각 계정에 대해 userid : passwd를 나열하는 파일을 별도의 줄에 표시 할 수 있습니다.

그게 다야.


답변

에릭 스미스의 아이디어에서 영감을 얻은 결합 openssl passwdusermod -p명령. 솔트 값과 함께 비밀번호의 해시 값을 생성합니다.

$ openssl passwd -1  -salt 5RPVAd clear-text-passwd43
$1$5RPVAd$vgsoSANybLDepv2ETcUH7.

그런 다음 암호화 된 문자열을 usermod에 복사하십시오. 작은 따옴표로 묶어야합니다.

$ usermod -p '$1$5RPVAd$vgsoSANybLDepv2ETcUH7.' root

섀도 파일에서 확인하십시오.

$ grep root /etc/shadow
root:$1$5RPVAd$vgsoSANybLDepv2ETcUH7.:17774:0:99999:7:::


답변

비밀번호 에이징을 사용하고 처음 로그인 할 때 비밀번호를 변경하도록 사용자를 설정해야합니다. 이 기사를 참조 하십시오 .


답변

(echo user; echo password) | passwd

물리적 호스트와 컨테이너 모두에서 다양한 OS (ubuntu xenial, bionic, debian9,10, centos75,76, coreos)에서 작동합니다.

echo user:password | chpasswd

일부 OS에서는 작동하지만 debian9,10과 같은 일부 OS는 can not connect to /var/run/nscd/socket/etc/nsswitch.conf를 사용하여 비밀번호를 저장할 위치를 결정하므로 오류를 표시 합니다.


답변