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는 ‘소유자는 모두, 나머지는 읽고 실행만’이에요. 체크 상자를 누르거나 숫자·기호를 넣으면 서로 바로 바뀌어요.
입력할 수 있는 형식
- 8진수:
644,0755,4755(맨 앞 자리는 특수 권한) ls -l표시:-rw-r--r--,drwxr-sr-x,drwxrwxrwt— 맨 앞 d는 폴더예요.- 기호식:
u+x,go-w,a=r,u=rwx,g=rx,o=— 지금 보이는 권한에 적용한 결과를 보여 줘요. 대문자X는 폴더이거나 이미 누군가 실행 권한이 있을 때만 실행 권한을 줘요.
특수 권한
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 {} +처럼 나눠서 쓰세요.
함께 쓰면 좋은 도구
- IP 서브넷 계산기 (CIDR·서브넷 마스크·호스트 수·IP 포함 여부)192.168.0.10/24 같은 CIDR이나 서브넷 마스크로 네트워크 주소·브로드캐스트·사용 가능한 IP 범위·호스트 수를 계산하고, 더 작은 서브넷으로 나누기, IP가 대역에 들어가는지 확인. IPv4·IPv6
- Cron 표현식 해석기 (크론탭 뜻·다음 실행 시각)`*/5 9-18 * * 1-5` 같은 크론탭 표현식을 한국어로 풀어 주고, 한국 시간 기준 다음 실행 시각 10~50개를 계산
- TAR.GZ 만들기 (여러 파일·폴더를 tar·tgz로 묶기)여러 파일이나 폴더를 리눅스·맥에서 바로 풀리는 .tar.gz(.tgz)나 .tar 하나로 묶기
- 진법 변환기 (2진수·8진수·10진수·16진수·36진수)2·8·10·16진수와 2~36진수 사이를 아주 큰 수까지 정확히 바꾸고, 2의 보수·비트 수·바이트 순서도 보기
- JSON 정리 (보기 좋게 들여쓰기·검증·압축)JSON을 보기 좋게 들여쓰기, 오류 위치 표시, 한 줄 압축, 키 정렬, 문자열 이스케이프
- 정규식 테스트 (정규표현식 매칭 확인)패턴과 플래그로 일치하는 부분을 강조 표시, 그룹 값 표, 바꾸기 미리보기, 자주 쓰는 패턴