728x90

개요

리눅스 시스템에서 파일디렉토리의 소유권은 보안과 접근 제어에 매우 중요한 요소입니다. 리눅스에서는 "chown"라는 개념이 존재하는 데,  chown(change owner) 명령어는 이러한 소유권을 관리하는 핵심 도구입니다.

 

본 글에서는 chown 명령어에 대해서 정리하고자 합니다.

 

chown이란❓

리눅스에서 파일과 디렉토리는 각각 소유자(owner)소유 그룹(group)을 가지는데, chown(change owner)은 파일이나 디렉토리의 소유자 또는 그룹을 변경하는 명령어입니다.

기본 사용법

1. 파일 소유자 변경

chown 새로운소유자 파일명

 

예시

chown user1 myfile.txt  # myfile.txt의 소유자를 user1로 변경


위와 같이 실행하면 "myfile.txt"파일의 소유자를 user1으로 변경합니다.

 


2. 파일 소유자와 그룹 변경

chown 새로운소유자:새로운그룹 파일명

 

예시

chown user1:usergroup myfile.txt  # 소유자를 user1, 그룹을 usergroup으로 변경

 

위와 같이 실행하면 "myfile.txt"파일의 소유자를 user1으로 변경하고, 소유 그룹을 usergroup으로 함께 변경합니다.


3. 그룹만 변경

chown :새로운그룹 파일명

 

예시

chown :usergroup myfile.txt

 

chown의 주요 옵션 

-R (recursive)

chown -R john:developers /home/project/

 

-R 옵션디렉토리그 하위 모든 파일/디렉토리변경 적용합니다.


-v (verbose)

chown -v john file.txt

 

-v 옵션변경된 내용을 자세히 출력하는 옵션입니다.


-f (force)

chown -f john file.txt

 

-f 옵션을 사용하면 에러 메시지를 표시하지 않습니다.

 

chown -h의 의미

chown명령어의 옵션 중 "-h"옵션이 존재합니다. 이 chown -h 옵션은 심볼릭 링크 자체의 소유권을 변경하는 명령어입니다.

 

즉, 심볼릭 링크가 가리키는 원본 파일이 아니라, 링크 파일 자체소유자를 변경합니다.

심볼릭 링크와 -h옵션의 관계

1. 기본 동작(옵션 없을 때)

# example.txt의 소유권이 변경됨
ln -s example.txt symlink.txt
chown john symlink.txt

 

위와 같이 -h 옵션을 사용하지 않는다면, 심볼릭 링크가 가리키는 원본 파일의 소유권이 변경됩니다.


2. -h 옵션 사용 시

# symlink.txt의 소유권만 변경됨
chown -h john symlink.txt

 

위와 같이 -h옵션을 실행하면, 심볼릭 링크 자체의 소유권만 변경되고, 원본 파일의 소유권은 변경되지 않습니다.


실제 예시로 이해하기

# 테스트 파일 생성
echo "원본 파일입니다" > original.txt
ln -s original.txt link.txt

# 현재 상태 확인
ls -l original.txt link.txt

# -h 옵션 없이 chown 실행
chown bob link.txt  # original.txt의 소유자가 bob으로 변경됨

# -h 옵션과 함께 chown 실행
chown -h alice link.txt  # link.txt의 소유자만 alice로 변경됨

 

 

이해를 돕기 위해 파일 구조를 시각화하면 다음과 같습니다.

 

주의 사항

 

  1. 권한 필요성
    • chown 명령어는 root 권한이나 sudo 권한필요합니다.
    • 일반 사용자는 자신이 소유한 파일그룹만 변경 가능합니다.
  2. 심볼릭 링크 처리
    • 기본적으로 심볼릭 링크 자체의 소유권만 변경됩니다.
    • -h 옵션을 사용하면 심볼릭 링크 자체의 소유권만 변경되고 원본 파일은 변경되지 않습니다.
  3. 보안 고려사항
    • 파일 소유권 변경은 보안에 직접적인 영향을 미칩니다.
    • 특히 시스템 파일의 소유권 변경은 신중하게 수행해야 합니다.