홈 › 개발·웹 도구

chmod 권한 계산기

웹 서버 파일은 보통 644(폴더 755), 비밀 키 파일은 600이에요. 777은 누구나 고칠 수 있어 위험하니 피하세요.

파일은 서버로 전송되지 않고 내 기기에서만 처리돼요

읽기 r (4)쓰기 w (2)실행 x (1)숫자
결과
·
숫자 명령
기호 명령
하위 폴더까지

umask로 기본 권한 계산

새로 만들면

권한 숫자 세 자리의 뜻

리눅스·맥의 파일마다 소유자(u), 그룹(g), 기타 사용자(o) 세 대상에 대해 읽기(r)·쓰기(w)·실행(x) 권한이 따로 있어요. 읽기는 4, 쓰기는 2, 실행은 1이고 이를 더한 숫자 세 개가 chmod 755의 755예요. 7(=4+2+1)은 모두 허용, 5(=4+1)는 읽기·실행, 4는 읽기만이에요. 그래서 755는 ‘소유자는 모두, 나머지는 읽고 실행만’이에요. 체크 상자를 누르거나 숫자·기호를 넣으면 서로 바로 바뀌어요.

입력할 수 있는 형식

특수 권한

setuid(4000)는 실행할 때 파일 소유자의 권한으로 돌아요(passwd 명령이 대표적). setgid(2000)는 폴더에 걸면 안에서 만든 파일이 폴더의 그룹을 따라가서 팀 공유 폴더에 써요. sticky(1000)는 폴더 안 파일을 만든 사람만 지울 수 있게 해서 /tmp(1777)에 쓰여요. 실행 권한 없이 특수 권한만 있으면 ls에서 대문자 S·T로 보여요.

umask

umask는 새 파일·폴더를 만들 때 빼는 권한이에요. 파일은 666, 폴더는 777에서 umask 비트를 빼요. 흔한 022면 파일 644·폴더 755, 077이면 파일 600·폴더 700이 돼요. 계산은 파이썬 stat.filemode와 같은 결과인지 확인했어요.

참고한 자료

자주 묻는 질문

777로 주면 안 되나요?

누구나 파일을 고치고 실행할 수 있어서 웹 서버라면 악성 코드가 심어질 수 있어요. 대부분 폴더 755, 파일 644면 충분해요.

SSH 키에 ‘UNPROTECTED PRIVATE KEY FILE’ 오류가 나요.

개인 키는 소유자만 읽을 수 있어야 해요. chmod 600 ~/.ssh/id_ed25519, 폴더는 chmod 700 ~/.ssh로 바꾸세요.

-R을 붙이면 무엇이 달라지나요?

폴더 안의 모든 파일·하위 폴더에 같은 권한을 줘요. 파일과 폴더에 다른 권한(644/755)을 주려면 find . -type f -exec chmod 644 {} +처럼 나눠서 쓰세요.

함께 쓰면 좋은 도구