[Linux] 파일/디렉토리 권한 관리 완벽 가이드: chmod 명령어와 755, 777의 의미

리눅스 환경(CentOS 7)에서 파일 및 디렉토리의 접근 권한을 제어하는 chmod 명령어 사용법을 정리합니다. 숫자 모드(755, 644)와 문자열 모드(u+x)의 차이를 이해하고, -R 옵션을 통해 하위 경로까지 일괄 적용하는 실무 예제를 다룹니다.

0. 배경 지식: 권한의 구조 (Permission Structure)

리눅스의 파일 권한은 소유자(User), 그룹(Group), 기타(Other) 세 가지 대상에 대해 읽기(r), 쓰기(w), 실행(x) 권한을 부여하는 구조입니다.

권한 확인 (ls -l)

ls -l
# 결과 예시: drwxr-xr-x (755)
# d(디렉토리) | rwx(소유자) | r-x(그룹) | r-x(기타)

1. 권한 변경 (chmod)

chmod(Change Mode) 명령어를 사용하여 파일이나 디렉토리의 권한을 변경합니다. 이미 생성된 파일의 현재 상태를 변경하는 명령어입니다.

옵션 설명

  • -R (--recursive): 디렉토리 내부의 모든 파일과 하위 디렉토리까지 재귀적으로(일괄) 변경합니다. (가장 많이 사용)

실무 사용 예시

# 1. WAS 디렉토리: 소유자만 모든 권한(7), 나머지는 접근 불가(0)
chmod -R 700 ./was

# 2. 웹 루트 및 바이너리: 소유자(7), 그룹/기타는 읽기/실행만(5) - 일반적인 설정
chmod -R 755 ./web
chmod -R 755 ./bin

# 3. 이미지 업로드 폴더: 누구나 쓰고 읽기 가능 (보안 주의!)
chmod -R 777 ./img

2. 권한 설정 방식 A: 숫자 모드 (Octal Mode)

가장 직관적이고 많이 사용되는 방식입니다. 각 권한에 할당된 점수(4, 2, 1)를 더해서 표현합니다.

권한 (Permission) 기호 (Symbol) 숫자 값 (Octal)
Read (읽기) r 4
Write (쓰기) w 2
Execute (실행) x 1

조합 예시

  • 7 (rwx): 4 + 2 + 1 (모든 권한)
  • 6 (rw-): 4 + 2 (읽기/쓰기 - 일반 파일)
  • 5 (r-x): 4 + 1 (읽기/실행 - 실행 파일, 디렉토리)
  • 0 (---): 권한 없음

3. 권한 설정 방식 B: 문자열 모드 (Symbolic Mode)

특정 대상의 권한만 콕 집어서 추가(+)하거나 제거(-)할 때 유용합니다.

대상 (Who) 연산자 (Op) 권한 (Permission)
u: User (소유자)
g: Group (그룹)
o: Other (기타)
a: All (전체, ugo)
+: 추가
-: 제거
=: 지정
r: 읽기
w: 쓰기
x: 실행

사용 예시

# run.sh 파일에 실행(x) 권한 추가 (모든 사용자에게)
chmod +x run.sh

# 그룹(g)에게 쓰기(w) 권한 제거
chmod g-w file.txt

# 기타 사용자(o)에게 읽기(r) 권한만 할당
chmod o=r file.txt

Next Step:
파일의 권한뿐만 아니라 소유권을 변경해야 할 때는 chown(Change Owner) 명령어를 사용해야 합니다. chown user:group filename 형식을 함께 익혀두세요.

Comments