리눅스 환경(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 형식을 함께 익혀두세요.