리눅스에서는 **파일이나 디렉터리에 대한 접근 권한(permission)**을 세밀하게 제어할 수 있습니다.
그중 가장 자주 쓰이는 명령어가 바로 chmod입니다.
이번 글에서는 chmod의 기본 개념과 숫자 표기법을 간단히 정리해보겠습니다.
chmod란?
chmod는 change mode의 약자로,
파일이나 디렉터리의 읽기(Read), 쓰기(Write), 실행(Execute) 권한을 변경하는 명령어입니다.
chmod [옵션] [권한] [파일명]
권한의 구성
리눅스에서는 파일 접근 권한이 세 가지 사용자 그룹으로 나뉩니다.
| 구분 | 의미 | 설명 |
| u | user | 파일 소유자 |
| g | group | 같은 그룹 사용자 |
| o | others | 그 외 사용자 |
각 사용자 그룹은 r(읽기), w(쓰기), x(실행) 세 가지 권한을 가집니다.
| 권한 | 의미 | 값 |
| r | read(읽기) | 4 |
| w | write(쓰기) | 2 |
| x | execute(실행) | 1 |
숫자 표기법 (8진수 방식)
chmod는 각 권한 값을 더한 숫자로 설정할 수 있습니다.
| 숫자 | 권한 | 설명 |
| 7 | rwx | 일기 + 쓰기 + 실행 |
| 6 | rx- | 읽기 + 쓰기 |
| 5 | r-x | 읽기 + 실행 |
| 4 | r-- | 읽기만 |
| 0 | --- | 권한 없음 |
예를 들어, 다음 명령을 보세요
chmod 755 my_script.sh
| 구분 | 권한 | 설명 |
| user | rwx(7) | 읽기, 쓰기, 실행 가능 |
| group | r-x(5) | 읽기, 실행만 가능 |
| others | r-x(5) | 읽기, 실행만 가능 |
즉, 소유자는 모든 작업이 가능하고,
다른 사용자는 실행만 가능한 상태가 됩니다.
문자 방식 (참고)
숫자 대신 문자로 권한을 설정할 수도 있습니다.
chmod u+x file.sh # 소유자에게 실행 권한 추가
chmod g-w file.txt # 그룹의 쓰기 권한 제거
chmod o=r file.txt # 다른 사용자에게 읽기만 허용
파일 vs 폴더 권한의 차이
리눅스에서 r, w, x 권한은 파일과 디렉터리에서 의미가 다르게 작동합니다.
즉, 같은 rwx라도 “파일”과 “폴더”에서 하는 일이 다릅니다.
| 권한 | 파일(File) | 폴더(Directory) |
| r (read) | 파일 내용을 읽을 수 있음 예: cat, less |
디렉터리 내부 파일 목록을 볼 수 있음 (ls 가능) |
| w (write) | 파일 내용을 수정할 수 있음 | 디렉터리 내부에 파일 생성/삭제 가능 |
| x (execute) | 파일을 실행 가능 (스크립트나 프로그램 등) | 디렉터리 내부로 진입 가능 (cd) |
정리하면
chmod는 단순하지만, 시스템 보안을 지키는 데 매우 중요한 명령어입니다.
권한을 넓게 주는 777은 편하지만 위험할 수 있으니,
항상 필요한 만큼만 권한을 부여하는 습관을 들이세요!
'개발 환경 및 프로젝트 관리 > Linux 개념' 카테고리의 다른 글
| Bash에서 문자열 비교 (String Comparison) (0) | 2025.10.08 |
|---|---|
| Bash 스크립트에서 if문과 정수 비교 (0) | 2025.10.08 |
| 리눅스 쉘 변수 기본 정리 (0) | 2025.10.07 |
| 리눅스 명령어 실전 예제: 프롬프트 복구부터 메모리 확인까지 (0) | 2025.06.01 |
| 🧨 셰뱅(Shebang)이 뭐예요? — 스크립트 첫 줄의 비밀 (0) | 2025.06.01 |