Linux / 명령어 / chown - 파일 소유자와 그룹 변경

chown은 파일이나 디렉터리의 소유 사용자와 소유 그룹을 변경합니다. 서비스 데이터 디렉터리의 소유권을 맞출 때 유용하지만 잘못된 재귀 적용은 서비스 접근을 막을 수 있습니다.

chown 명령어란?

소유자:그룹을 지정하면 두 속성을 함께 바꾸고, 소유자만 지정하면 보통 그룹은 그대로 둡니다. 변경 권한은 시스템 정책에 따라 제한되며 일반적으로 관리자 권한이 필요합니다. 접근 권한 비트 자체는 chmod로 관리합니다.

기본 문법

chown [옵션] 소유자[:그룹] 파일 ...

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

사용 예제

소유자만 변경

파일의 소유자를 계정에 맞춥니다. 중요한 시스템 경로에서는 먼저 대상 확인이 필요합니다.

sudo chown alice report.txt

소유자와 그룹 함께 변경

사용자와 그룹을 명시해 모호함을 줄입니다.

sudo chown alice:editors report.txt

변경 결과 확인

소유자·그룹을 확인한 뒤 필요한 경우에만 변경합니다.

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

소유자·그룹 변경 결과 확인하기

다음 예시는 alice 사용자와 developers 그룹이 실제로 존재한다는 전제입니다. 소유자 변경에는 보통 관리자 권한이 필요합니다.

sudo chown alice:developers demo.txt
stat -c '%U:%G %n' demo.txt

예시 출력:

alice:developers demo.txt

chown 성공 시에는 대개 출력이 없으므로 stat이나 ls -l로 결과를 확인합니다. -R은 디렉터리 아래 전체에 적용되므로 웹 루트나 시스템 디렉터리에서 사용하기 전에 경로와 심볼릭 링크 처리 방식을 확인하세요. 소유권 변경이 서비스 접근 정책을 바꿀 수 있습니다.

컨테이너나 네트워크 파일시스템에서는 이름이 같아도 내부 숫자 UID·GID가 달라 예상과 다른 소유권으로 보일 수 있습니다. 자동화에서는 id 사용자와 대상의 stat -c '%u:%g'를 함께 확인하세요. 서비스 계정의 소유권은 임의로 바꾸면 쓰기·실행 권한 오류가 생길 수 있습니다.

주요 옵션과 형식

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

사용할 때 주의할 점

경로 하나를 잘못 지정한 chown -R은 많은 파일의 소유권을 한 번에 바꿀 수 있습니다. 먼저 stat이나 find로 범위를 확인하고, 가능하면 좁은 경로에만 적용하세요. 심볼릭 링크와 특수 권한 비트의 처리는 파일 시스템·옵션에 영향을 받을 수 있습니다.

자주 묻는 질문

chown alice report.txt와 chown alice:editors report.txt의 차이는?

앞은 소유 사용자만 변경하고, 뒤는 소유 사용자와 그룹을 함께 지정합니다.

공식 문서

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

같은 카테고리의 다른 글
Linux / 명령어 / whereis - 명령의 바이너리·소스·매뉴얼 위치 찾기

Linux / 명령어 / whereis - 명령의 바이너리·소스·매뉴얼 위치 찾기

Linux whereis 명령어로 프로그램의 바이너리, 소스와 매뉴얼 페이지 위치를 찾는 방법을 설명합니다. 검색 범위 제한과 which·find와의 차이도 정리합니다.

Linux / 명령어 / ssh-copy-id - SSH 공개키를 원격 계정에 등록

Linux / 명령어 / ssh-copy-id - SSH 공개키를 원격 계정에 등록

Linux ssh-copy-id 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / 명령어 / pkill - 이름으로 프로세스에 시그널 보내기

Linux / 명령어 / pkill - 이름으로 프로세스에 시그널 보내기

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

Linux / 리눅스 디렉토리 구조와 주요 디렉토리별 용도

Linux / 리눅스 디렉토리 구조와 주요 디렉토리별 용도

리눅스의 /etc, /var, /usr, /home, /proc, /dev 등 주요 디렉토리별 용도와 이름의 의미를 정리합니다. 리눅스 파일시스템 구조를 처음 배우거나 서버 관리에 필요한 디렉토리를 확인할 때 참고할 수 있습니다.

Linux / 명령어 / touch - 파일 생성과 타임스탬프 변경

Linux / 명령어 / touch - 파일 생성과 타임스탬프 변경

Linux touch 명령어로 빈 파일을 만들고 접근 시각과 수정 시각을 변경하는 방법을 설명합니다. 기준 파일의 시간을 복사하는 방법과 스크립트에서 사용할 때의 주의점도 알아봅니다.

Linux / 명령어 / tac - 파일을 마지막 줄부터 역순 출력

Linux / 명령어 / tac - 파일을 마지막 줄부터 역순 출력

Linux tac 명령어로 파일의 줄 순서를 뒤집어 마지막 줄부터 출력하는 방법을 설명합니다. 여러 파일 처리, 구분자 변경과 로그 확인 예제를 함께 정리합니다.

Linux / 명령어 / diff - 텍스트 파일과 디렉터리 차이 비교

Linux / 명령어 / diff - 텍스트 파일과 디렉터리 차이 비교

Linux diff 명령어로 텍스트 파일과 디렉터리의 차이를 비교하는 방법을 설명합니다. unified 형식, 재귀 비교, 공백 무시와 종료 상태를 정리합니다.

Linux / 명령어 / sftp - SSH로 안전하게 파일 전송

Linux / 명령어 / sftp - SSH로 안전하게 파일 전송

Linux sftp 명령어로 SSH 기반 파일을 업로드하고 다운로드하는 방법을 설명합니다. 경로 구분, 전송 재개, 공개 키 인증, 배치 자동화와 보안 점검 사항을 정리합니다.

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

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

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

Linux / 명령어 / xz - 파일을 xz 형식으로 압축하기

Linux / 명령어 / xz - 파일을 xz 형식으로 압축하기

Linux xz 명령어의 용도와 기본 문법을 알아봅니다. 파일 처리 예제, 주요 옵션과 원본 보존·덮어쓰기 주의점을 설명합니다.