실제로 고정 키보드(호스트, RDP, vCenter, 가상 콘솔)가 있지만 구축 중인 VM의 비밀번호를 업데이트해야 합니다.
CentOS 미디어에서 제공하는 복구 환경을 이용하면 chroot
설치된 시스템으로 가서 실행할 수 passwd
있는데, 비밀번호를 한 번 입력하면 부득이하게 비밀번호 토큰 불일치 오류가 발생합니다. (때때로 명령줄에 "passwd"를 입력하면 "passsswwdddd" 또는 이와 유사한 내용이 에코됩니다.)
루트 비밀번호를 두 번 입력하지 않고 어떻게 업데이트할 수 있나요?
비밀번호를 모르기 때문에 ssh를 할 수 없습니다(이렇게 하면 끈적거리는 키보드 문제가 해결됩니다). 따라서 복구 환경과 chroot
.
답변1
대화형 프롬프트를 사용해야 하는 경우 스크립트에서 다음 트릭을 사용합니다.
yourpass='My supersecret password'
$(echo $yourpass; echo $yourpass) | passwd username
기본적으로 변수에 비밀번호를 할당하고 다음 명령에서 사용합니다.
답변2
다음과 같은 형식을 사용할 수 있습니다.
# echo "Th3P@ssw0rd" | passwd --stdin theUser
바이너리 버전이 passwd
이 --stdin
옵션을 지원한다고 가정합니다.
답변3
Mark Plotnick의 의견에 따르면,
vi passfile
usermod -p `openssl passwd stdin < passfile` root
rm -f passfile
이를 통해 임시 파일을 편집하고 실제로 생각하는 비밀번호로 설정했는지 확인할 수 있습니다. 또한 기록 등으로부터 비밀번호를 보호합니다.
답변4
이 시도:
# echo 'root:PASSWORD' | chpasswd
PASSWORD를 원하는 비밀번호로 바꾸세요. Suse Linux에서는 잘 작동합니다.