개요
리눅스 환경에서 파일 및 디렉터리의 소유 그룹을 안전하게 변경하는 chgrp 명령어의 핵심 사용법을 다룹니다. 기본 문법부터 실무에서 자주 쓰이는 재귀 변경(-R), 참조 복사(–reference), 심볼릭 링크 처리 옵션까지 단계별 실습 예제와 함께 살펴봅니다.
chgrp 기본 개념과 단일 파일 소유 그룹 변경
파일 그룹 소유권 변경 실습을 진행하기 위해 sudo groupadd -f devteam 명령어를 실행하여 devteam 그룹을 생성합니다.

소유 그룹 변경 대상이 될 테스트 파일을 생성하기 위해 touch /tmp/sample_doc.txt 명령어를 실행합니다.

파일의 기존 소유자와 그룹 소유권 상태를 확인하기 위해 ls -l /tmp/sample_doc.txt 명령어를 실행합니다.

chgrp 명령어는 리눅스 환경에서 파일이나 디렉터리의 소유 그룹을 변경하는 명령어입니다.sudo chgrp devteam /tmp/sample_doc.txt 명령어를 실행하여 대상 파일의 소유 그룹을 devteam으로 변경합니다.
⚙️ [주요 옵션]
-c : 실제로 그룹 소유권이 변경된 파일에 대해서만 변경 내역을 출력합니다.-f : 그룹 소유권 변경 실패 시 출력되는 대부분의 오류 메시지를 생략합니다.-v : 처리되는 모든 파일에 대해 작업 과정과 결과를 상세하게 출력합니다.-R : 디렉터리와 그 내부의 모든 하위 파일 및 디렉터리의 소유 그룹을 재귀적으로 변경합니다.--reference=RFILE : 그룹명을 직접 입력하는 대신 지정한 파일(RFILE)의 소유 그룹을 참조하여 동일하게 적용합니다.

파일의 소유 그룹이 devteam으로 정상적으로 변경되었는지 확인하기 위해 ls -l /tmp/sample_doc.txt 명령어를 실행합니다.

디렉터리 및 하위 파일 일괄 변경 (-R 옵션)
계층 구조를 가진 디렉터리의 소유 그룹 일괄 변경 실습을 위해 상위 및 하위 디렉터리를 생성하는 mkdir -p /tmp/project_dir/sub 명령어를 실행합니다.

디렉터리 내부에서 변경 테스트 대상이 될 파일들을 생성하기 위해 touch /tmp/project_dir/file1.txt /tmp/project_dir/sub/file2.txt 명령어를 실행합니다.

그룹 소유권을 변경하기 전 디렉터리와 모든 하위 파일들의 기존 소유권 상태를 확인하기 위해 ls -lR /tmp/project_dir 명령어를 실행합니다.

chgrp 명령어에 -R 옵션을 사용하면 지정한 디렉터리와 그 내부의 모든 하위 파일 및 디렉터리의 소유 그룹을 한 번에 재귀적으로 변경할 수 있습니다.sudo chgrp -R devteam /tmp/project_dir 명령어를 실행하여 디렉터리와 하위 항목들의 소유 그룹을 devteam으로 일괄 변경합니다.

디렉터리와 모든 하위 파일들의 소유 그룹이 devteam으로 정상 변경되었는지 확인하기 위해 ls -lR /tmp/project_dir 명령어를 실행합니다.

다른 파일의 그룹 소유권을 복제하는 참조 변경 (–reference)
소유 그룹 복제 실습을 진행할 대상 테스트 파일을 생성하기 위해 touch /tmp/target_file.txt 명령어를 실행합니다.

기준이 될 참조 파일과 변경 대상 파일의 기존 그룹 소유권 상태를 함께 확인하기 위해 ls -l /tmp/sample_doc.txt /tmp/target_file.txt 명령어를 실행합니다.

chgrp 명령어에 --reference 옵션을 사용하면 그룹명을 직접 입력하지 않고 기준 파일의 소유 그룹을 그대로 복제하여 적용할 수 있습니다.sudo chgrp --reference=/tmp/sample_doc.txt /tmp/target_file.txt 명령어를 실행하여 /tmp/sample_doc.txt 파일의 소유 그룹 설정을 /tmp/target_file.txt 파일에 동일하게 복사합니다.

대상 파일의 소유 그룹이 기준 파일과 동일하게 devteam으로 정상 변경되었는지 확인하기 위해 ls -l /tmp/target_file.txt 명령어를 실행합니다.

변경 상세 내역 확인(-v, -c)과 심볼릭 링크 처리(-h)
새로운 소유 그룹 변경 실습을 진행하기 위해 sudo groupadd -f qateam 명령어를 실행하여 qateam 그룹을 생성합니다.

심볼릭 링크에 대한 소유 그룹 변경 실습 환경을 마련하기 위해 ln -sf /tmp/sample_doc.txt /tmp/sample_link 명령어를 실행하여 심볼릭 링크를 생성합니다.

생성된 심볼릭 링크의 기본 소유자와 그룹 소유권 상태를 확인하기 위해 ls -l /tmp/sample_link 명령어를 실행합니다.

chgrp 명령어에 -v 옵션을 적용하면 파일의 소유 그룹 변경 과정과 결과를 터미널에 상세하게 출력합니다.sudo chgrp -v qateam /tmp/sample_doc.txt 명령어를 실행하여 소유 그룹을 qateam으로 변경하고 처리 내역을 확인합니다.

chgrp 명령어에 -h 옵션을 사용하면 원본 대상 파일 대신 심볼릭 링크 파일 자체의 소유 그룹을 변경할 수 있습니다.sudo chgrp -h qateam /tmp/sample_link 명령어를 실행하여 심볼릭 링크 자체의 소유 그룹을 qateam으로 변경합니다.

심볼릭 링크 파일의 소유 그룹이 qateam으로 정상 변경되었는지 확인하기 위해 ls -l /tmp/sample_link 명령어를 실행합니다.

지금까지 우분투 환경에서 chgrp 명령어를 활용해 리눅스 파일과 디렉터리의 그룹 소유권을 변경하는 방법을 간단하게 정리해보았습니다.
알려드린 핵심 옵션과 실습 예제를 바탕으로 서버 내 권한을 안전하고 효율적으로 관리해 보시기 바랍니다.