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
계산 단계
- umask 값 확인 (예: 022)
- 비트 NOT 연산: ~umask (777에서 umask 뺀 값)
- ~022 = 755
- 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