정보처리기사/정보시스템 구축관리

Linux 파일 권한 및 소유권 관리 (chmod, chown, umask)

glorypang 2025. 10. 17. 20:55
728x90
반응형
SMALL

파일 권한 (File Permissions) 기본 개념

권한 구성 요소

권한  기호  숫자  의미 (파일)  의미 (디렉터리)
읽기 r 4 파일 내용 읽기 디렉터리 목록 조회
쓰기 w 2 파일 수정/삭제 파일 생성/삭제
실행 x 1 파일 실행 디렉터리 진입(cd)

권한 대상 (3그룹)

rwx  rwx  rwx
│    │    └─ Other (기타 사용자)
│    └────── Group (그룹)
└─────────── Owner (소유자)

권한 숫자 표기법

권한 계산

r(4) + w(2) + x(1) = 합계

주요 권한 조합

숫자 
기호  권한  계산
7 rwx 읽기+쓰기+실행 4+2+1
6 rw- 읽기+쓰기 4+2
5 r-x 읽기+실행 4+1
4 r-- 읽기만 4
3 -wx 쓰기+실행 2+1
2 -w- 쓰기만 2
1 --x 실행만 1
0 --- 권한 없음 0

전체 권한 예시

숫자  기호 표기 의미
777 rwxrwxrwx 모두 모든 권한
755 rwxr-xr-x 소유자 모든 권한, 그룹·기타 읽기·실행
644 rw-r--r-- 소유자 읽기·쓰기, 그룹·기타 읽기만
600 rw------- 소유자만 읽기·쓰기
400 r-------- 소유자만 읽기

chmod (Change Mode) - 권한 변경

개요

  • 명칭: Change file mode bits
  • 목적: 파일/디렉터리의 권한(Permission) 변경
  • 사용자: 파일 소유자 또는 root만 가능

chmod 사용법 - 숫자 모드 (Numeric Mode)

기본 문법

chmod [옵션] [권한] [파일/디렉터리]

숫자 모드 예시

# 기본 권한 설정
chmod 644 file.txt        # rw-r--r-- (일반 파일)
chmod 755 script.sh       # rwxr-xr-x (실행 파일)
chmod 777 shared.txt      # rwxrwxrwx (모든 권한)
chmod 600 secret.txt      # rw------- (소유자만)
chmod 400 readonly.txt    # r-------- (읽기 전용)

# 디렉터리 권한
chmod 755 /home/user/public    # rwxr-xr-x
chmod 700 /home/user/private   # rwx------
chmod 775 /var/www/html        # rwxrwxr-x

chmod 옵션

옵션  설명  예시
-R 재귀적 적용 (하위 디렉터리 포함) chmod -R 755 /dir
-v 상세 출력 (변경 내역 표시) chmod -v 644 file.txt
-c 변경된 것만 출력 chmod -c 755 script.sh
--reference 참조 파일과 동일하게 설정 chmod --reference=ref.txt target.txt

재귀 적용 예시

# 디렉터리와 모든 하위 파일/디렉터리 권한 변경
chmod -R 755 /var/www/html

# 특정 디렉터리 하위의 모든 파일 644로 변경
find /path/to/dir -type f -exec chmod 644 {} \;

# 특정 디렉터리 하위의 모든 디렉터리 755로 변경
find /path/to/dir -type d -exec chmod 755 {} \;

chown (Change Owner) - 소유권 변경

개요

  • 명칭: Change file owner and group
  • 목적: 파일/디렉터리의 소유자(Owner)그룹(Group) 변경
  • 사용자: root(관리자)만 가능 (일반 사용자는 자신 소유 파일도 변경 불가)

chown 사용법

기본 문법

chown [옵션] [소유자][:그룹] [파일/디렉터리]

형식 종류

형식 의미  예시
user 소유자만 변경 chown john file.txt
user:group 소유자와 그룹 변경 chown john:developers file.txt
user: 소유자와 그룹 변경 (그룹은 소유자의 기본 그룹) chown john: file.txt
:group 그룹만 변경 chown :developers file.txt

chown 사용 예시

# 소유자만 변경
chown alice file.txt
# 소유자: root → alice (그룹은 그대로)

# 소유자와 그룹 함께 변경
chown bob:developers project.txt
# 소유자: root → bob
# 그룹: root → developers

# 소유자 변경, 그룹은 소유자의 기본 그룹으로
chown charlie: data.txt
# 소유자: root → charlie
# 그룹: root → charlie (charlie의 기본 그룹)

# 그룹만 변경
chown :admins config.txt
# 소유자: 그대로
# 그룹: root → admins

 

chown 옵션

옵션  설명  예시
-R 재귀적 적용 (하위 디렉터리 포함) chown -R user:group /dir
-v 상세 출력 (변경 내역 표시) chown -v alice file.txt
-c 변경된 것만 출력 chown -c bob:dev file.txt
--reference 참조 파일과 동일하게 설정 chown --reference=ref.txt target.txt
-h 심볼릭 링크 자체의 소유자 변경 chown -h user link

umask (User file-creation mode mask)

정의

  • 새 파일/디렉터리 생성 시 차단할 권한을 지정하는 마스크
  • 기본 모드에서 umask 값을 제거하여 실제 권한 결정

기본 생성 모드

유형  기본 모드  기호 이유
파일 666 rw-rw-rw- 실행(x) 권한은 기본 제공 안 함 (보안)
디렉터리 777 rwxrwxrwx 진입(x) 권한 필요하므로 포함

umask 계산 방식

계산 공식

실제 권한 = 기본 모드 & ~umask
           (비트 AND 연산)

기본 모드:
- 파일: 666
- 디렉터리: 777

계산 단계

  1. umask 값 확인 (예: 022)
  2. 비트 NOT 연산: ~umask (777에서 umask 뺀 값)
    • ~022 = 755
  3. AND 연산: 기본 모드 & ~umask

umask 계산 예제

예제 1: umask = 022 (가장 일반적)

1단계: umask 분석

umask = 022
├─ Owner: 0 (권한 차단 없음)
├─ Group: 2 (쓰기 차단)
└─ Other: 2 (쓰기 차단)

 

2단계: 비트 NOT

~022 = 755
(777 XOR 022 = 755)

 

3단계: 실제 권한 계산

파일 (기본 666)

  666 (rw-rw-rw-)
& 755 (rwxr-xr-x)
-----
  644 (rw-r--r--)

자리별 AND (8진수 → 2진수):
Owner:  6(110) & 7(111) = 6(110) = rw-
Group:  6(110) & 5(101) = 4(100) = r--
Other:  6(110) & 5(101) = 4(100) = r--

디렉터리 (기본 777)

  777 (rwxrwxrwx)
& 755 (rwxr-xr-x)
-----
  755 (rwxr-xr-x)

 

결과

  • 파일: 644 (rw-r--r--)
  • 디렉터리: 755 (rwxr-xr-x)

예제 2: umask = 002

계산

~002 = 775

파일:     666 & 775 = 664 (rw-rw-r--)
디렉터리: 777 & 775 = 775 (rwxrwxr-x)

특징: 그룹에게 쓰기 권한 허용 (협업 환경)

예제 3: umask = 077

계산

~077 = 700

파일:     666 & 700 = 600 (rw-------)
디렉터리: 777 & 700 = 700 (rwx------)

특징: 소유자만 접근 가능 (보안 강화)


핵심 정리

 

  • chmod: "권한(Permission) 변경"
  • chown: "주인(Owner) 변경"
  • umask: "차단할 권한 마스크"
728x90
반응형
LIST