시스템에 많은 수의 사용자를 추가하는 스크립트를 작성 중입니다. 여기에는 각 사용자의 기본 비밀번호 설정이 포함됩니다. 비밀번호를 묻는 메시지가 표시되지 않고 사용자 비밀번호를 설정하려면 어떻게해야합니까?
불행히도 passwd는 설정할 새 암호를 나타내는 인수를 사용하지 않는 것 같습니다. 우분투 11.10을 사용하고 있습니다.
답변
usermod를 사용해보십시오 :
usermod --password PASSWORD USERNAME
유일한 것은 이것이 당신이 먼저 생성 해야하는 사전 암호화 된 암호 문자열이 필요하다는 것입니다.
답변
다음 chpasswd
명령을 살펴 봐야 합니다 (리눅스 버전에서 사용 가능한 경우).
echo 'userid:newpasswd' | chpasswd
또는 각 계정에 대해 userid : passwd를 나열하는 파일을 별도의 줄에 표시 할 수 있습니다.
그게 다야.
답변
에릭 스미스의 아이디어에서 영감을 얻은 결합 openssl passwd
과 usermod -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를 사용하여 비밀번호를 저장할 위치를 결정하므로 오류를 표시 합니다.