프로그래밍 방식으로 비밀번호 변경

프로그래밍 방식으로 비밀번호 변경

현재 버전의 Raspian에서는 다음과 같이 명령줄에서 현재 로그인한 사용자의 비밀번호를 변경할 수 있다는 것을 알고 있습니다.

sudo passwd

그러면 사용자에게 새 비밀번호를 두 번 묻는 메시지가 표시됩니다. 그러면 다음과 같은 출력이 생성됩니다.

Changing password for pi.
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

예를 들어 쉘 스크립트를 통해 프로그래밍 방식으로 비밀번호를 변경할 수 있는지 알고 싶습니다.

내 Raspberry Pis에 배포할 구성 스크립트를 만들려고 하는데 새 비밀번호를 수동으로 입력하고 싶지 않습니다.

답변1

당신은 명령을 찾고 있습니다 chpasswd. 당신은 다음과 같은 일을 할 것입니다 :

echo 'pi:newpassword' | chpasswd # change user pi password to newpassword

최소한 기본 PAM 구성을 사용하여 루트로 실행해야 합니다. 그러나 시스템 배포 스크립트의 경우 루트로 실행하는 것은 문제가 되지 않을 수 있습니다.

또한 여러 줄의 입력을 제공하여 여러 사용자를 동시에 처리할 수 있습니다.

답변2

yes또 다른 옵션은 스크립트에서 명령을 사용하는 것입니다.

yes newpassword | passwd youruser

이는 명령 newpassword으로 전송됩니다 .passwdyouruser

스크립트를 통해 사용자 비밀번호를 설정/수정하는 것은 보안 위험을 초래할 수 있으므로 가능하면 피해야 한다는 점을 언급해야 합니다.

편집하다:

이 답변에는 루트 액세스가 필요합니다. 이 점을 미리 언급하지 못해 죄송합니다. 이것이 루트 액세스가 필요한 관리 작업을 수행할 때 사용하는 방법입니다.

답변3

@derobert의 답변은 정확하지만 다음과 같이 슈퍼유저로 명령을 실행해야 합니다.

echo 'pi:newpassword' | sudo chpasswd # change user pi password to newpassword

sudo뒷면에 주의하세요 |. sudo에서만 작동하기 때문에 처음에는 도움이 되지 않습니다.echo

관련 정보