리눅스, macOS 같은 유닉스 계열 시스템의 모든 파일과 디렉터리에는 권한 모드가 있습니다. 소유자, 그룹, 그 외 모든 사용자 각각에 대한 읽기·쓰기·실행 플래그 세 묶음입니다. chmod가 이 모드를 바꾸며, 755, 644 같은 숫자 표기가 가장 짧은 방법입니다. 이 계산기는 양방향으로 변환합니다. 8진수 세 자리나 네 자리, 또는 -rwsr-xr-x 같은 ls -l 문자열을 입력하면 다른 표기와 클래스별 허용 동작이 나오고, 체크박스를 켜고 끄면 숫자가 바뀝니다.
chmod 755 file 같은 명령도 만들어 주므로 셸에 그대로 붙여넣을 수 있습니다. 웹 서버를 설정할 때, "too open"이라며 거부된 SSH 키를 고칠 때, 배포 스크립트를 쓸 때, 아니면 640이 무슨 뜻인지 떠올리고 싶을 때 쓰세요.
계산은 브라우저 안에서 이루어지며 어디로도 전송되지 않습니다. 표준 권한 비트 아홉 개와 특수 비트 세 개(setuid, setgid, sticky)를 모두 다룹니다. 세 자리와 네 자리 모드, 00755 같은 GNU chmod의 다섯 자리 형식, u+x나 u=rwX,go=rX 같은 심볼릭 표현식을 입력할 수 있습니다.
사용 방법
8진수 모드를 입력하거나 기본값에서 시작
644나4755처럼 0~7 숫자 세 자리 또는 네 자리,00755같은 GNU chmod의 다섯 자리 형식, 또는-rw-r--r--같은ls -l문자열을 입력합니다.u+x같은 심볼릭 표현식과chmod 755 app.sh같은 명령 전체도 됩니다. 페이지는 755로 시작합니다.읽기·쓰기·실행 토글
소유자, 그룹, 기타 사용자 각각의 읽기(r), 쓰기(w), 실행(x)을 켜고 끄고, 필요하면 setuid·setgid·sticky 스위치도 켭니다. 8진수 숫자와 기호 문자열이 함께 바뀝니다.
결과 읽기
8진수 모드,
-rwxr-xr-x같은 기호 표기, 클래스별 허용·불가 동작 카드가 나오며 설명은 파일용과 디렉터리용으로 나뉩니다.명령 복사
숫자 방식(
chmod 755 file)이나 문자 방식(chmod u=rwx,g=rx,o=rx file) 명령을 복사합니다. 파일 이름을 직접 입력하고, 재귀 옵션을 켜면-R이 붙습니다. 디렉터리나 재귀 대상의 숫자 명령은00755같은 다섯 자리 모드를 쓰고, 문자 명령은 불필요한 setuid나 setgid 비트를 명시적으로 끕니다.터미널에서 확인
ls -l을 실행해 첫 번째 열을 기호 문자열과 비교하세요. 리눅스의stat -c %a file은 8진수 모드를 바로 출력합니다.
작동 원리
8진수 숫자가 만들어지는 방식
클래스마다 숫자 하나를 쓰며, 가진 권한 값을 더해 만듭니다. 읽기는 4, 쓰기는 2, 실행은 1입니다. 754 같은 모드는 합계 세 개입니다. 소유자 7(4+2+1), 그룹 5(4+1), 기타 4(4)이고, 순서는 항상 소유자, 그룹, 기타(POSIX 용어로 user, group, other)입니다.
| 숫자 | 2진수 | 기호 | 의미 |
|---|---|---|---|
| 0 | 000 | --- | 접근 불가 |
| 1 | 001 | --x | 실행만 |
| 2 | 010 | -w- | 쓰기만 |
| 3 | 011 | -wx | 쓰기와 실행 |
| 4 | 100 | r-- | 읽기만 |
| 5 | 101 | r-x | 읽기와 실행 |
| 6 | 110 | rw- | 읽기와 쓰기 |
| 7 | 111 | rwx | 읽기, 쓰기, 실행 |
자주 쓰는 모드와 기본값이 정해지는 곳(umask)
가장 자주 만나는 모드를 이 계산기로 변환한 표이고, 이어서 기본값이 어디서 오는지 설명합니다.
새 파일은 666, 새 디렉터리는 777에서 시작하고 프로세스의 umask가 거기서 비트를 뺍니다. 흔한 umask 022는 666을 644로, 777을 755로 만듭니다. umask 077이면 600과 700, umask 002이면 664와 775가 됩니다. 계산은 모드 AND NOT umask입니다.
| 모드 | 기호 | 주요 용도 |
|---|---|---|
| 755 | rwxr-xr-x | 실행 파일, 스크립트, 모두가 들어가야 하는 디렉터리 |
| 644 | rw-r--r-- | HTML, 설정, 소스 같은 일반 파일 |
| 600 | rw------- | 개인 키, 비밀 값, .env 파일 |
| 700 | rwx------ | ~/.ssh 같은 개인 디렉터리 |
| 750 | rwxr-x--- | 소유자 전체, 그룹은 읽기·실행, 기타는 차단 |
| 640 | rw-r----- | 소유자 수정, 그룹 읽기, 기타 없음(로그 파일) |
| 664 | rw-rw-r-- | 공유 프로젝트에서 그룹이 쓸 수 있는 파일 |
| 775 | rwxrwxr-x | 공유 프로젝트에서 그룹이 쓸 수 있는 디렉터리 |
| 400 | r-------- | 읽기 전용 비밀 값, 보호된 키 |
| 777 | rwxrwxrwx | 모두가 모든 것을 할 수 있음: 피할 것 |
umask 022 파일 666 -> 644 디렉터리 777 -> 755
umask 077 파일 666 -> 600 디렉터리 777 -> 700
umask 002 파일 666 -> 664 디렉터리 777 -> 775파일과 디렉터리에서 r, w, x의 의미
파일에서 읽기는 내용을 보는 것, 쓰기는 내용을 바꾸는 것, 실행은 파일을 프로그램으로 실행하는 것입니다. 디렉터리에서는 의미가 달라집니다. 읽기는 안에 있는 이름을 나열하는 것이고, 쓰기는 항목을 만들고 이름을 바꾸고 삭제하는 것이지만(파일 자체의 권한과 무관), 이 쓰기 동작에는 같은 디렉터리의 실행 권한도 필요합니다. 실행(검색 권한이라고 부름)은 디렉터리에 들어가 이름으로 안의 파일에 접근하는 것입니다. 읽기만 있고 실행이 없는 디렉터리는 열 수 없는 이름만 보여 주고, 읽기가 없고 실행만 있는 디렉터리는 파일 이름을 이미 알아야만 열 수 있습니다.
그래서 디렉터리는 보통 x가 필요한 755이고 일반 파일은 필요 없는 644입니다. 셸 스크립트 같은 인터프리터 스크립트를 직접 실행하려면 읽기와 실행이 모두 필요합니다.
네 번째 자리: setuid, setgid, sticky (예: 4755)
모드 앞에 특수 비트를 담는 네 번째 자리가 올 수 있습니다. 4는 setuid, 2는 setgid, 1은 sticky 비트입니다. 기호 문자열에서는 x 자리를 대신합니다. 그래서 4755는 rwsr-xr-x입니다. 보통의 755에 setuid가 더해져 프로그램이 소유자 권한으로 실행됩니다(passwd 명령이 대표적입니다). 2755는 rwxr-sr-x(setgid)이고, 1777은 /tmp처럼 공유 디렉터리에서 사용자가 자기 파일만 지울 수 있게 하는 sticky 비트의 rwxrwxrwt입니다. 대응하는 x가 없으면 문자가 대문자(S, T)로 나옵니다. 실행 파일의 setuid가 S로 보이면 대개 실수입니다. 디렉터리에서는 해당 부류에 검색 권한이 없어도 다른 부류가 디렉터리를 통과할 수 있다면 S·T가 의도된 설정일 수 있고, 통과할 수 있는 사용자에게 setgid 상속이나 sticky 삭제 제한이 여전히 적용됩니다.
이 계산기는 네 번째 자리와 특수 비트 스위치를 바로 받습니다. 4755를 입력하거나 Setuid를 켜거나 -rwsr-xr-x를 붙여 넣으면 나머지 표기가 따라옵니다. 모든 사용자가 쓸 수 있는 파일이나 소유자 실행 권한 없는 setuid 같은 위험한 조합은 경고해 줍니다.
| 모드 | 기호 | 특수 비트 |
|---|---|---|
| 4755 | rwsr-xr-x | 실행 파일의 setuid |
| 2775 | rwxrwsr-x | 공유 디렉터리의 setgid: 새 파일이 그룹을 상속 |
| 1777 | rwxrwxrwt | /tmp처럼 sticky 비트 |
| 4644 | rwSr--r-- | 소유자 x 없는 setuid: 대문자 S는 실수일 가능성을 알림 |
실제 예시
755소유자 (u): 읽기, 쓰기, 실행
그룹 (g): 읽기, 실행
기타 사용자 (o): 읽기, 실행
rwxr-xr-x
$ chmod 755 file644소유자 (u): 읽기, 쓰기
그룹 (g): 읽기
기타 사용자 (o): 읽기
rw-r--r--
$ chmod 644 file600소유자 (u): 읽기, 쓰기
그룹 (g): 없음
기타 사용자 (o): 없음
rw-------
$ chmod 600 fileOpenSSH는 다른 사용자가 읽을 수 있는 개인 키를 "Permissions 0644 for key are too open" 같은 메시지로 거부합니다. 키는 600(또는 400), ~/.ssh 디렉터리는 700으로 두세요.
4755755 부분: rwxr-xr-x
setuid(4)가 소유자 x를 대신함: rwsr-xr-x
ls -l 형태: -rwsr-xr-x
$ chmod 4755 file계산기는 네 자리를 받습니다. Setuid 스위치가 켜지고, 프로그램이 소유자 권한으로 실행된다는 위험 안내가 나옵니다.
/var/www/site 아래 디렉터리는 755, 파일은 644find /var/www/site -type d -exec chmod 00755 {} +
find /var/www/site -type f -exec chmod 644 {} +chmod -R 755 한 번으로 하면 모든 파일이 실행 가능해집니다.
자주 하는 실수
chmod 777은 해결책이 아님
로컬 사용자 누구나, 침해된 프로세스까지도 파일을 수정할 수 있게 됩니다. "permission denied"의 진짜 원인은 대개 소유자·그룹이 틀렸거나 상위 디렉터리의
x가 없는 것입니다.chown이나chmod +x로 고치세요. 여러 사람이 써야 하면 알맞은 그룹과 775를 쓰세요.chmod -R은 파일과 디렉터리에 같은 모드를 적용
chmod -R 755 dir은 모든 데이터 파일을 실행 가능하게 만들고,chmod -R 644 dir은 디렉터리에서x를 빼서 아무도 들어갈 수 없게 합니다.find -type d와find -type f로 디렉터리와 파일을 따로 설정하세요.디렉터리에는 r뿐 아니라 x도 필요
디렉터리에 실행 권한이 없으면 목록은 볼 수 있어도
cd로 들어가거나 안의 파일을 열 수 없습니다. 파일은 멀쩡해 보이는데 웹 서버가 403을 내는 가장 흔한 원인입니다.파일 삭제는 디렉터리 권한이 결정
파일을 삭제하거나 이름을 바꿀 수 있는지는 sticky 비트가 없다면 파일 자체의 모드가 아니라 그 파일이 든 디렉터리의 쓰기 권한이 정합니다.
권한이 무시되거나 덮어써질 수 있음
마운트한 윈도우(NTFS, FAT, exFAT)나 네트워크 드라이브는 chmod를 무시하는 경우가 많습니다. ACL, SELinux, AppArmor가 모드 비트와 다르게 접근을 허용하거나 막을 수도 있고, root는 검사를 우회합니다.
8진수 숫자는 0~7만 가능
799나75는 올바르지 않습니다. 계산기는 8진수 세 자리나 네 자리, 또는 맨 앞에 0을 붙인 GNU chmod의 다섯 자리 형식을 받고 입력란 아래에 오류를 표시합니다.75대신075나0075로 쓰세요.00755도 올바른 입력입니다.
자주 묻는 질문
chmod 755는 무슨 뜻인가요?
소유자는 읽기·쓰기·실행(7), 그룹은 읽기·실행(5), 기타 사용자도 읽기·실행(5)입니다. 기호로는 rwxr-xr-x이며 프로그램과 공개 디렉터리의 표준 모드입니다.
chmod 644는 무슨 뜻인가요?
소유자는 읽기와 쓰기(6), 그룹과 기타 사용자는 읽기만(4) 가능합니다. 기호로는 rw-r--r--이고 일반 파일의 보통 모드입니다.
rwxr-xr-x를 숫자로 바꾸려면 어떻게 하나요?
세 묶음으로 나눕니다. rwx = 4+2+1 = 7, r-x = 4+0+1 = 5, r-x = 5이므로 모드는 755입니다.
chmod 755와 chmod +x는 어떻게 다른가요?
chmod 755 file은 모드 전체를 명시적으로 지정합니다. chmod +x file은 umask가 허용하는 클래스에 실행 권한만 더하고 나머지 비트는 그대로 둡니다.
SSH 개인 키의 권한은 어떻게 해야 하나요?
600(소유자 읽기·쓰기) 또는 400(소유자 읽기 전용)이고 ~/.ssh 디렉터리는 700이어야 합니다. OpenSSH는 다른 사용자가 읽을 수 있는 키를 거부합니다.
4755나 1777 같은 특수 모드는 무슨 뜻인가요?
앞자리 4는 setuid, 2는 setgid, 1은 sticky 비트입니다. 4755는 rwsr-xr-x, 1777은 /tmp에 쓰이는 rwxrwxrwt입니다. 이 계산기에서는 네 자리를 입력하거나 Setuid·Setgid·Sticky 스위치를 켜면 대응하는 기호 문자열이 나옵니다.
chmod 777을 써도 안전한가요?
거의 그렇지 않습니다. 모든 사용자에게 쓰기 권한을 줍니다. 공개 콘텐츠에는 755나 644, 팀 디렉터리에는 공유 그룹과 775, 비밀 값에는 600을 쓰세요.
입력한 값이 어딘가로 전송되나요?
아니요. 브라우저 안에서만 실행되는 작은 계산입니다.
더 깊이 읽기
마지막 업데이트:
