chmod 755를 외워서 쓰긴 하는데 왜 하필 755인지 물으면 막막합니다. 권한이 어려운 게 아니라, rwx 글자와 숫자가 어떻게 연결되는지를 한 번도 계산해보지 않아서입니다. 한 번만 손으로 풀면 다시는 안 헷갈립니다.
rwx는 세 대상에게 따로 주어진다
ls -l을 찍으면 맨 앞에 -rwxr-xr-x 같은 10글자가 나옵니다. 맨 앞 1글자는 파일 종류(-파일, d디렉터리)이고, 나머지 9글자가 3글자씩 세 묶음입니다.
| 묶음 | 대상 | 의미 |
|---|---|---|
| 첫 3글자 | 소유자(user) | 파일 주인의 권한 |
| 가운데 3글자 | 그룹(group) | 같은 그룹 사용자의 권한 |
| 마지막 3글자 | 기타(other) | 그 외 모든 사용자의 권한 |
각 묶음 안의 세 글자는 항상 r(읽기)·w(쓰기)·x(실행) 순서입니다. 권한이 없으면 -로 표시됩니다. 디렉터리에서 x는 "그 안으로 들어갈 수 있다"는 뜻이라 의외로 중요합니다.
숫자는 rwx를 2진수로 본 것이다
핵심은 여기입니다. r·w·x를 각각 켜짐(1)·꺼짐(0)으로 보고, 8진수 자릿값을 매깁니다.
| 권한 | 값 |
|---|---|
| r (읽기) | 4 |
| w (쓰기) | 2 |
| x (실행) | 1 |
한 묶음의 숫자는 그 안에 켜진 권한 값을 더한 것입니다. 그래서 rwx는 4+2+1=7, r-x는 4+0+1=5, r--는 4입니다.
chmod 755 script.sh
이 755를 풀면 이렇게 됩니다.
7 = rwx → 소유자: 읽기·쓰기·실행 모두
5 = r-x → 그룹: 읽기·실행 (쓰기 없음)
5 = r-x → 기타: 읽기·실행 (쓰기 없음)
즉 755는 "주인은 다 할 수 있고, 나머지는 보고 실행만 가능"입니다. 실행 파일이나 스크립트에 흔히 줍니다. 반대로 일반 문서에 자주 쓰는 644는 6=rw-(주인 읽기·쓰기), 4=r--(나머지 읽기만)이라 실행 권한이 빠진 형태입니다.
직접 확인하고 바꿔보기
ls -l script.sh # 현재 권한 확인
chmod 644 script.sh # rw-r--r-- 로 변경
chmod u+x script.sh # 소유자에게 실행만 추가 (기호 방식)
숫자 방식은 권한 전체를 한 번에 덮어쓰고, u+x 같은 기호 방식은 기존 권한에서 일부만 더하거나(+) 뺍니다(-). 둘은 헷갈리기 쉬우니, 전체를 명확히 정할 땐 숫자, 한 비트만 손볼 땐 기호를 쓴다고 기억하면 됩니다.
요점 정리
-rwxr-xr-x는 소유자·그룹·기타 3묶음, 각 묶음은r·w·x순.- 숫자는 r=4, w=2, x=1을 더한 값 — 7=rwx, 5=r-x, 6=rw-, 4=r--.
- 755 = 주인 다 가능 + 나머지 읽기·실행, 644 = 주인 읽기·쓰기 + 나머지 읽기.
- 전체 설정은 숫자(
chmod 644), 일부 조정은 기호(chmod u+x).
권한·소유권·chmod·chown을 실제 파일로 바꿔보는 실습은 리눅스 트랙에서 회원가입 없이 무료로 익힐 수 있습니다.