Linux / 명령어 / chgrp - 파일 소유 그룹 변경

chgrp는 파일이나 디렉터리의 소유 그룹만 바꿉니다. 여러 사용자가 같은 작업 파일에 접근하도록 그룹을 맞출 때 사용합니다.

chgrp 명령어란?

그룹 소유권이 바뀌어도 파일의 그룹 권한 비트가 자동으로 추가되지는 않습니다. 실제 공유 접근을 허용하려면 대상의 그룹 읽기·쓰기 권한과 상위 디렉터리의 통과 권한도 함께 확인해야 합니다.

기본 문법

chgrp [옵션] 그룹 파일 ...

설치된 구현과 옵션은 배포판에 따라 다를 수 있습니다. man chgrp으로 현재 시스템의 설명을 확인하세요.

사용 예제

파일 그룹 변경

대상 그룹이 존재하고 변경 권한이 있는지 확인합니다.

sudo chgrp editors report.txt

여러 파일에 적용

명시한 파일만 변경합니다.

sudo chgrp editors draft.txt final.txt

변경 전후 확인

stat으로 그룹과 권한을 함께 봅니다.

stat -c '%U:%G %A %n' report.txt

그룹 변경 후 확인할 것

chgrp는 소유자는 그대로 두고 그룹 소유권만 바꿉니다. 아래 예제의 그룹은 미리 존재해야 하며, 호출 사용자에게 변경 권한이 있어야 합니다.

chgrp developers demo.txt
stat -c '%G %n' demo.txt

예시 출력:

developers demo.txt

권한이 없으면 Operation not permitted 오류가 날 수 있습니다. 소유 그룹이 바뀌어도 접근 가능 여부는 파일의 그룹 권한 비트와 현재 프로세스의 그룹 멤버십에 따라 달라집니다. 공유 디렉터리의 새 파일에 동일한 그룹을 유지하려면 디렉터리의 setgid 비트도 함께 검토하세요.

주요 옵션과 형식

옵션·형식 설명
-R 하위 경로까지 재귀 변경합니다.
-h 심볼릭 링크 자체의 그룹을 대상으로 합니다.
--reference=파일 참조 파일의 그룹을 사용합니다.
-v 처리한 파일을 자세히 표시합니다.

사용할 때 주의할 점

그룹만 바꾼 뒤에도 Permission denied가 나올 수 있습니다. ls -ld로 상위 디렉터리의 실행 권한과 파일의 그룹 권한을 확인하세요. chgrp -R은 범위가 넓고 심볼릭 링크 처리도 고려해야 하므로 정확한 대상에서만 실행합니다.

자주 묻는 질문

chgrp와 chown :그룹은 같은가요?

둘 다 그룹 소유권을 바꾸는 데 사용할 수 있습니다. 그룹만 바꾸려는 목적은 chgrp가 더 분명하게 드러냅니다.

공식 문서

옵션의 정확한 동작과 구현별 차이는 chgrp 관련 공식 문서에서 확인할 수 있습니다.

같은 카테고리의 다른 글
Linux / 명령어 / apropos - 설명 키워드로 명령어 검색

Linux / 명령어 / apropos - 설명 키워드로 명령어 검색

apropos 명령어로 이름을 모르는 리눅스 명령과 매뉴얼을 기능 키워드로 찾는 방법을 설명합니다. 정규 표현식, 모든 키워드 일치, 섹션 제한과 검색 결과가 없을 때의 해결 방법을 다룹니다.

Linux / 명령어 / ln - 하드 링크와 심볼릭 링크 생성

Linux / 명령어 / ln - 하드 링크와 심볼릭 링크 생성

Linux ln 명령어로 하드 링크와 심볼릭 링크를 만드는 방법을 설명합니다. 두 링크의 차이, 상대 경로, 깨진 링크와 기존 링크 교체 시 주의점도 정리합니다.

Linux / 명령어 / xargs - 표준 입력을 명령 인수로 전달

Linux / 명령어 / xargs - 표준 입력을 명령 인수로 전달

Linux xargs 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / help - 셸 내장 명령어 도움말 확인

Linux / 명령어 / help - 셸 내장 명령어 도움말 확인

Bash help 명령어로 셸 내장 명령과 문법의 도움말을 확인하는 방법을 설명합니다. 출력 형식, 패턴 검색, type·man·--help와의 차이 및 스크립트 활용법을 정리합니다.

Linux 강좌 / 리눅스란 무엇인가? 커널, 배포판, 오픈 소스 이해하기

Linux 강좌 / 리눅스란 무엇인가? 커널, 배포판, 오픈 소스 이해하기

리눅스 커널과 배포판은 어떻게 다를까요? 사용자 공간과 오픈 소스의 의미를 구분하고, 현재 시스템의 커널·배포판 정보를 확인하는 방법을 알아봅니다.

Linux / 명령어 / rm - 파일과 디렉터리 삭제

Linux / 명령어 / rm - 파일과 디렉터리 삭제

Linux rm 명령어로 파일과 디렉터리를 삭제하는 방법을 설명합니다. 재귀 삭제, 대화형 확인, 루트 보호 옵션과 복구가 어려운 삭제를 안전하게 다루는 원칙을 정리합니다.

Linux / 명령어 / readlink - 심볼릭 링크 대상 경로 확인

Linux / 명령어 / readlink - 심볼릭 링크 대상 경로 확인

Linux readlink 명령어로 심볼릭 링크에 저장된 대상 경로를 확인하는 방법을 설명합니다. 상대 링크, 깨진 링크, 경로 정규화 옵션과 realpath의 차이도 정리합니다.

Linux / 네트워크 / IP 확인하는 방법

Linux / 네트워크 / IP 확인하는 방법

Linux에서 ip address와 ip route get으로 인터페이스 주소와 실제 출발지 IP를 확인하는 방법을 설명합니다. 사설·공인 IP, IPv4·IPv6와 컨테이너 환경의 차이도 정리합니다.

Linux / 명령어 / apk - Alpine Linux 패키지 설치·제거와 저장소 갱신

Linux / 명령어 / apk - Alpine Linux 패키지 설치·제거와 저장소 갱신

Linux apk 명령어의 적용 배포판과 기본 작업을 설명합니다. 패키지 조회·설치 예제, 주요 옵션과 시스템 변경 시 주의점을 알아봅니다.

Linux / 명령어 / join - 공통 필드로 두 파일 결합

Linux / 명령어 / join - 공통 필드로 두 파일 결합

Linux join 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.