스크립트의 한 컴퓨터에서 섀도우 파일 항목을 가져온 다음 다른 컴퓨터에서 해당 사용자 항목을 찾아 해당 줄을 바꾸려고 합니다(여러 컴퓨터에서 비밀번호를 업데이트하기 위해).
이는 사용자 생성 스크립트의 일부이므로 먼저 각 컴퓨터에서 사용자가 생성된 다음 암호가 서버에 추가된 다음 다른 워크스테이션에 복사됩니다.
답변1
이 문제를 처리하는 더 간단한 방법이 많이 있다는 위의 의견에 동의하면서 실제 문제에 대한 몇 가지 도움말은 다음과 같습니다.
$MY_USER="anything"
HASH=$(ssh <source_server> "cat /etc/shadow | grep ^$MY_USER:" | awk -F: '{print $2}')
ssh <target_server> "echo '$MY_USER:$HASH' | chpasswd -e"
특정 사용자의 변수를 대체 MY_USER
하고 스크립트의 마지막 줄을 사용하여 서버를 반복합니다.
기타 의견:
- 모든 서버가 동일한 비밀번호 인코딩을 사용하는지 확인해야 합니다(만약의 경우에 대비해 대체된 항목에서 백업을 생성해야 함).
- 이는 루트 비밀번호에 대한 액세스 권한이 없고 nopasswd sudo 규칙 세트가 없는 경우에
sudo -S
유용할 수 있습니다 . - 비밀번호를 변경하기 전에 비밀번호에 액세스할 수 있는 다른 방법이 있는지 확인하세요.