chmod 권한 계산기 (755 · rwxr-xr-x)

숫자나 문자열을 입력하거나 체크박스를 조합하면 chmod 명령에 쓸 값을 만들어 줍니다. 숫자 입력칸이 비어 있지 않으면 그 값을 기준으로, 비어 있으면 체크박스를 기준으로 계산합니다.

비워 두면 아래 체크박스를 사용합니다
chmod 권한 계산기 (755 · rwxr-xr-x)모두의계산기

숫자 한 자리가 뜻하는 것

권한은 소유자(user)·그룹(group)·기타(other) 세 묶음이고 각 묶음은 읽기(r=4)·쓰기(w=2)·실행(x=1)의 합으로 0~7 한 자리가 됩니다. 7은 rwx, 6은 rw-, 5는 r-x, 4는 r--입니다. 그래서 755는 "소유자 rwx, 그룹 r-x, 기타 r-x"입니다. 네 자리일 때 맨 앞은 특수 비트(setuid 4, setgid 2, sticky 1)입니다. ls -l의 첫 글자(d, -, l)는 파일 종류이지 권한이 아닙니다. 계산은 브라우저에서만 처리됩니다.

디렉토리에서 x는 "실행"이 아니다

디렉토리의 실행 비트는 그 안으로 들어가(cd) 내부 파일에 접근할 수 있는 권한입니다. 읽기(r)는 파일 이름 목록만 볼 수 있게 하고, 쓰기(w)는 안에 파일을 만들거나 지울 수 있게 합니다. 그래서 x 없이 r만 있으면 이름은 보이지만 열 수 없고, r 없이 x만 있으면 이름을 아는 파일은 열 수 있지만 목록은 못 봅니다. 파일을 지우는 권한은 파일 자체가 아니라 그 파일이 든 디렉토리의 w에 달려 있다는 점도 자주 혼동됩니다. 이 때문에 디렉토리는 보통 755 또는 700, 파일은 644 또는 600을 씁니다.

특수 비트

setuid는 실행 파일을 실행한 사람이 아니라 파일 소유자(보통 root) 권한으로 돌게 합니다. /usr/bin/passwd가 일반 사용자의 비밀번호 변경을 위해 이 비트를 씁니다. setgid는 디렉토리에 걸면 그 안에 생성되는 파일이 디렉토리의 그룹을 물려받아 팀 공유 폴더에 유용합니다. sticky/tmp처럼 모두가 쓰는 디렉토리에서 남의 파일을 지우지 못하게 합니다. 표시에서 s/t는 실행 비트도 있을 때, 대문자 S/T는 실행 비트 없이 특수 비트만 있을 때입니다.

umask와의 관계

새 파일은 666, 새 디렉토리는 777에서 umask 값을 뺀(정확히는 AND NOT) 권한으로 만들어집니다. umask가 022면 파일 644, 디렉토리 755가 되고, 077이면 600과 700이 됩니다. "왜 만든 파일이 항상 644인가"의 답이 umask입니다. chmod -R로 재귀 적용할 때 파일과 디렉토리에 같은 값을 주면 파일에 불필요한 실행 권한이 생기므로 chmod -R u=rwX,go=rX처럼 대문자 X(디렉토리나 이미 실행 가능한 파일에만 x 부여)를 쓰는 것이 낫습니다.

자주 묻는 질문

777을 주면 안 되나요?

누구나 수정·실행할 수 있게 되어 보안상 위험하고, 대부분의 권한 문제는 소유자가 달라서 생기므로 chown으로 소유자를 맞추는 것이 올바른 해결입니다. SSH는 키 파일이 600이 아니면 아예 거부합니다.

윈도우에서도 쓰나요?

NTFS는 ACL 방식이라 chmod 숫자가 없습니다. WSL, Git Bash, Docker 안에서는 리눅스 권한이 적용되며, Git은 실행 비트(100755/100644)만 추적합니다.

0644 와 644 는 다른가요?

같습니다. 앞의 0은 8진수 표기임을 나타내거나 특수 비트가 없다는 뜻입니다. 4755처럼 0이 아닌 숫자가 앞에 오면 특수 비트입니다.

함께 보기