리눅스 chpasswd 완벽 가이드: 다중 계정 비밀번호 일괄 변경과 자동화

개요

리눅스 환경에서 여러 사용자 계정의 비밀번호를 스크립트나 파일을 통해 일괄 변경할 수 있는 chpasswd 명령어의 실무 활용법을 다룹니다. 대화형 프롬프트 없이 표준 입력과 배치 처리를 통해 계정 관리 업무를 자동화하는 핵심 기법을 소개합니다. Ubuntu 터미널 환경에서 단일 계정 적용부터 대량 계정 갱신, 암호화 옵션 활용까지 단계별 실습을 진행합니다.

chpasswd 기본 동작 원리와 단일 계정 비밀번호 변경

chpasswd 명령어 실습을 진행하기 위해 sudo useradd -m -s /bin/bash testuser1 명령어로 테스트용 계정을 생성합니다.

sudo useradd -m -s /bin/bash testuser1

chpasswd 명령어는 표준 입력으로 사용자명:비밀번호 형식의 데이터를 받아 대화형 입력 없이 비밀번호를 즉시 변경합니다.
파이프(|) 연산자를 활용하여 계정 정보와 새 비밀번호를 전달하면 단일 계정의 암호를 빠르게 갱신할 수 있습니다.
⚙️ [주요 옵션]

-c : 암호화에 사용할 해시 알고리즘(DES, MD5, SHA256, SHA512 등)을 지정합니다.
-e : 입력으로 전달하는 비밀번호가 이미 암호화된 해시 문자열임을 나타냅니다.
-m : 비밀번호 암호화 알고리즘으로 MD5 방식을 사용합니다.
-s : SHA 알고리즘을 적용할 때 암호화 라운드(반복 횟수)를 지정합니다.
-R : 작업을 수행할 대상 chroot 디렉터리 경로를 지정합니다.

echo ’testuser1:Password123!’ | sudo chpasswd

비밀번호가 정상적으로 갱신되었는지 확인하기 위해 /etc/shadow 파일에서 생성한 계정의 암호화 정보를 조회합니다.
실행 결과 testuser1 계정의 비밀번호가 안전한 해시 값 형태로 암호화되어 시스템에 반영된 것을 확인할 수 있습니다.

sudo grep ‘^testuser1:’ /etc/shadow | cut -d: -f1,2

파일 목록을 활용한 다중 계정 비밀번호 일괄 갱신

다중 계정 비밀번호 일괄 변경 실습을 진행하기 위해 sudo useradd -m -s /bin/bash testuser2 && sudo useradd -m -s /bin/bash testuser3 명령어로 테스트용 계정들을 생성합니다.

sudo useradd -m -s /bin/bash testuser2 && sudo useradd -m -s /bin/bash testuser3

일괄 갱신할 계정과 비밀번호 정보를 사용자명:비밀번호 형식으로 구성하여 user_passwords.txt 파일에 저장합니다.

printf ’testuser2:NewPass2026!\ntestuser3:NewPass2026!\n’ > user_passwords.txt

chpasswd 명령어에 입력 리다이렉션(<)을 활용하여 user_passwords.txt 파일에 기록된 모든 계정의 비밀번호를 일괄 갱신합니다.
대화형 입력 과정 없이 파일에 포함된 다중 계정의 암호가 시스템에 한 번에 배치 처리됩니다.

sudo chpasswd < user_passwords.txt

비밀번호 변경이 정상적으로 반영되었는지 검증하기 위해 sudo grep -E '^(testuser2|testuser3):' /etc/shadow | cut -d: -f1 명령어로 대상 계정을 조회합니다.
실행 결과 testuser2와 testuser3 계정의 정보가 정상적으로 확인되어 일괄 갱신 작업이 성공적으로 완료되었음을 알 수 있습니다.

sudo grep -E ‘^(testuser2|testuser3):’ /etc/shadow | cut -d: -f1

암호화 알고리즘 지정(-c) 및 보안 옵션 실습

chpasswd 명령어에 -c SHA512 옵션을 지정하여 입력받은 비밀번호를 SHA512 해시 알고리즘으로 암호화해 testuser1 계정에 적용합니다.
보안성을 한층 강화하기 위해 특정 해시 알고리즘을 명시적으로 지정하여 비밀번호를 안전하게 변경합니다.

echo ’testuser1:SecureSHA512Pass!’ | sudo chpasswd -c SHA512

비밀번호가 지정한 알고리즘으로 올바르게 암호화되었는지 확인하기 위해 /etc/shadow 파일에서 testuser1 계정의 정보를 조회합니다.
출력 결과 해시 문자열의 접두사인 $6$을 통해 SHA512 알고리즘이 정상 적용되어 안전하게 저장된 것을 확인할 수 있습니다.

sudo grep ‘^testuser1:’ /etc/shadow | cut -d: -f1,2

실습 환경 원상 복구 및 생성 계정 정리

실습을 위해 임시로 생성했던 테스트 사용자 계정과 홈 디렉터리를 시스템에서 완전히 삭제하기 위해 sudo userdel -r testuser1 && sudo userdel -r testuser2 && sudo userdel -r testuser3 명령어를 실행합니다.

sudo userdel -r testuser1 && sudo userdel -r testuser2 && sudo userdel -r testuser3

비밀번호 일괄 변경 실습에 사용했던 임시 계정 정보 파일을 안전하게 삭제하여 실습 환경을 정리하기 위해 rm -f user_passwords.txt 명령어를 실행합니다.

rm -f user_passwords.txt

지금까지 chpasswd 명령어를 활용해 다중 계정의 비밀번호를 일괄 변경하고 자동화하는 방법을 간단하게 살펴보았습니다.
대량의 사용자 계정을 신속하고 안전하게 관리해야 하는 서버 운영 환경에서 유용하게 활용해 보시기 바랍니다.