Ubuntu chgpasswd 명령어 실무: 그룹 비밀번호 일괄 변경 가이드

개요

리눅스 서버에서 여러 그룹의 비밀번호를 수작업 없이 일괄 등록하거나 변경해야 할 때 chgpasswd 명령어를 활용하면 관리 효율을 크게 높일 수 있습니다. 본 글에서는 chgpasswd의 동작 원리부터 표준 입력 기반 배치 처리, 암호화 알고리즘 지정 실무까지 직접 터미널에서 실습하며 알아봅니다.

실습 준비 및 테스트 그룹 생성

chgpasswd 명령어 실습에 사용할 테스트 그룹을 생성하기 위해 sudo groupadd -r devops_team && sudo groupadd -r qa_team 명령어를 실행합니다.

sudo groupadd -r devops_team && sudo groupadd -r qa_team

생성한 devops_team과 qa_team 그룹이 시스템에 정상적으로 등록되었는지 확인하기 위해 getent group devops_team qa_team 명령어를 실행합니다.
실행 결과 각 그룹 이름과 할당된 GID가 정상적으로 출력되는 것을 확인할 수 있습니다.

getent group devops_team qa_team

chgpasswd 기본 사용법과 그룹 비밀번호 일괄 변경

printf로 전달한 그룹명:비밀번호 형식의 문자열을 파이프라인을 통해 sudo chgpasswd의 표준 입력으로 넘겨 여러 그룹의 비밀번호를 일괄 설정합니다.
명령어 실행 후 오류 메시지 없이 종료되면 입력된 그룹들의 비밀번호가 시스템에 정상적으로 일괄 갱신된 것입니다.

printf ‘%s\n%s\n’ ‘devops_team:P@ssw0rdDev!’ ‘qa_team:P@ssw0rdQA!’ | sudo chgpasswd

그룹의 암호화된 비밀번호 정보가 보관되는 /etc/gshadow 파일에 변경 사항이 제대로 반영되었는지 확인하기 위해 sudo grep -E 'devops_team|qa_team' /etc/gshadow 명령어를 실행합니다.
실행 결과 devops_team과 qa_team 그룹의 비밀번호 필드에 안전하게 암호화된 해시값이 등록되어 정상 적용된 것을 확인할 수 있습니다.

sudo grep -E ‘devops_team|qa_team’ /etc/gshadow

SHA-512 암호화 옵션(-c) 적용하기

chgpasswd 명령어에 -c SHA512 옵션을 사용하여 devops_team 그룹의 비밀번호를 SHA-512 알고리즘으로 암호화하여 설정하기 위해 printf '%s\n' 'devops_team:SecurePass999!' | sudo chgpasswd -c SHA512 명령어를 실행합니다.
별도의 오류 메시지 없이 명령이 종료되면 입력한 그룹 비밀번호가 정상적으로 갱신된 것입니다.

printf ‘%s\n’ ‘devops_team:SecurePass999!’ | sudo chgpasswd -c SHA512

devops_team 그룹에 암호화 옵션이 제대로 적용되었는지 확인하기 위해 sudo getent gshadow devops_team 명령어를 실행합니다.
실행 결과 비밀번호 필드가 SHA-512 알고리즘을 의미하는 $6$ 식별자로 시작하는 해시값으로 안전하게 변경된 것을 확인할 수 있습니다.

sudo getent gshadow devops_team

파일 리다이렉션 기반 대량 갱신 및 환경 정리

변경할 그룹 비밀번호 정보를 임시 파일에 저장한 후 입력 리다이렉션(<)을 통해 chgpasswd로 전달하여 일괄 변경하기 위해 echo 'qa_team:NewSecurePass888!' | sudo tee /tmp/group_pass.txt > /dev/null && sudo chgpasswd < /tmp/group_pass.txt 명령어를 실행합니다.
오류 메시지 없이 실행이 완료되면 파일에 정의된 그룹 비밀번호가 시스템에 정상적으로 일괄 갱신된 것입니다.

echo ‘qa_team:NewSecurePass888!’ | sudo tee /tmp/group_pass.txt > /dev/null && sudo chgpasswd < /tmp/group_pass.txt

qa_team 그룹의 비밀번호가 올바르게 갱신되었는지 확인하기 위해 sudo getent gshadow qa_team 명령어를 실행합니다.
실행 결과 qa_team 항목에 암호화된 해시값이 정상적으로 등록되어 있는 것을 확인할 수 있습니다.

sudo getent gshadow qa_team

실습 과정에서 생성한 임시 비밀번호 파일과 테스트 그룹을 시스템에서 완전히 제거하기 위해 rm -f /tmp/group_pass.txt && sudo groupdel devops_team && sudo groupdel qa_team 명령어를 실행합니다.
별도의 오류 메시지 없이 종료되면 임시 파일과 테스트 그룹이 모두 안전하게 삭제되어 실습 환경 정리가 완료됩니다.

rm -f /tmp/group_pass.txt && sudo groupdel devops_team && sudo groupdel qa_team

지금까지 Ubuntu 환경에서 chgpasswd 명령어를 활용해 그룹 비밀번호를 일괄 변경하고 관리하는 방법을 간단하게 살펴보았습니다.
대량의 그룹 및 계정을 효율적으로 운영해야 하는 실무 환경에서 자동화 작업과 함께 유용하게 활용해 보시기 바랍니다.