핵심 요약
리눅스 권한은 대상 3종(소유자·그룹·기타) × 권한 3종(읽기 r=4, 쓰기 w=2, 실행 x=1)의 조합이다. 755는 소유자에게 rwx(7), 그룹·기타에 rx(5)를 준다는 뜻. 각 자리 숫자는 그 대상의 r/w/x 합이다.
1. 권한 읽는 법
-rwxr-xr-- 1 user group ...
│└┬┘└┬┘└┬┘
│ │ │ └ 기타(others): r--
│ │ └─── 그룹(group): r-x
│ └────── 소유자(owner): rwx
└──────── 파일 종류(- 파일, d 디렉터리)
2. 숫자 계산
| 권한 | 값 |
|---|---|
| r (읽기) | 4 |
| w (쓰기) | 2 |
| x (실행) | 1 |
rwx = 4+2+1 = 7, r-x = 4+1 = 5, rw- = 4+2 = 6. 그래서 755 = rwx r-x r-x, 644 = rw- r-- r--.
3. 실무 권장값
| 대상 | 권한 | 이유 |
|---|---|---|
| 일반 파일 | 644 | 소유자만 수정, 나머지 읽기 |
| 디렉터리 | 755 | x가 있어야 진입 가능 |
| 실행 스크립트 | 755 | 실행권한 필요 |
| 비밀키·.env | 600 | 소유자만 접근 |
| SSH private key | 600 | 느슨하면 ssh가 거부 |
4. 명령어
chmod 644 file.txt # 숫자 방식
chmod u+x deploy.sh # 소유자에 실행 추가(기호 방식)
chmod -R 755 dir/ # 재귀
chmod go-w file # 그룹·기타 쓰기 제거
chown user:group file # 소유자/그룹 변경
5. 함정
- 디렉터리의 x는 "진입" 권한이다. r만 있고 x가 없으면 목록은 봐도
cd·파일 접근이 안 된다 chmod 777은 "아무나 쓰기"라 보안상 위험 — 웹 서버 파일에 남발 금지- SSH 키가
600보다 느슨하면 "permissions are too open"으로 접속이 거부된다
자주 묻는 질문
644와 755는 언제 뭘 쓰나요?
일반 파일은 644(소유자 읽기·쓰기, 나머지 읽기), 디렉터리와 실행 파일은 755입니다. 디렉터리는 실행 권한(x)이 있어야 그 안으로 들어갈 수 있기 때문에 파일과 달리 x가 필요합니다.
chmod 777로 하면 문제가 해결되던데 왜 쓰면 안 되나요?
모든 사용자에게 읽기·쓰기·실행을 허용하는 것이라 웹 서버가 뚫리면 파일이 변조·실행됩니다. 권한 문제는 소유자(chown)나 필요한 최소 권한으로 해결해야지 777로 덮으면 안 됩니다.
기호 방식(u+x)과 숫자 방식 중 뭐가 좋나요?
전체 권한을 한 번에 지정할 땐 숫자(755)가 명확하고, 기존 권한에서 한 비트만 더하거나 뺄 땐 기호(u+x, go-w)가 안전합니다. 상황에 맞게 섞어 씁니다.

댓글 0