DevToolPal
한국어

chmod 계산기

Unix 파일 권한을 체크박스, 8진수(755), 기호 표기(rwxr-xr-x) 사이에서 변환합니다. setuid, setgid, 스티키 비트를 지원하고 바로 복사할 수 있는 chmod 명령을 만들어 줍니다.

로컬에서 실행, 업로드 없음

옵션

권한

읽기쓰기실행특수
소유자
그룹
기타 사용자

결과

결과가 여기에 표시됩니다

기능

chmod 계산기는 Unix/Linux 파일 권한을 세 가지 표기 사이에서 변환합니다. 읽기·쓰기·실행 체크박스, 755 같은 8진수, rwxr-xr-x 같은 기호 표기입니다. 이에 맞는 chmod 명령을 8진수와 기호 두 가지로 만들어 주고, 누가 무엇을 할 수 있는지 설명하며, setuid, setgid, 스티키 특수 비트도 지원합니다. 모든 처리는 브라우저에서 이루어집니다.

사용 방법

  1. 소유자, 그룹, 기타 사용자의 체크박스를 선택하거나 입력란에 모드를 입력합니다. 8진수(644, 0644, 4755), ls -l 형식 문자열(rw-r--r-- 또는 파일 형식이 앞에 붙은 -rw-r--r--), u=rwx,g=rx,o=나 a+x 같은 chmod 식을 입력할 수 있습니다.
  2. 체크박스와 결과는 입력에 따라 바뀌고, 체크박스를 누르면 같은 표기로 모드가 다시 쓰입니다.
  3. 옵션에서 파일 이름을 정하고, 디렉터리 트리 전체에 적용하려면 **재귀 적용 (-R)**을 켭니다. 완성된 명령은 클릭 한 번으로 복사합니다.

자주 쓰는 모드

chmod 755 deploy.sh        # rwxr-xr-x
chmod 644 index.html       # rw-r--r--
chmod 600 ~/.ssh/id_ed25519  # rw-------
chmod 1777 /tmp            # rwxrwxrwt
  • 755: 디렉터리, 스크립트, 프로그램. 소유자는 수정할 수 있고 모두가 읽고 실행할 수 있습니다.
  • 644: 웹 페이지, 이미지 같은 일반 파일.
  • 600: SSH 키, .env 같은 비공개 파일. 소유자만 읽을 수 있습니다. 다른 사람이 읽을 수 있는 키는 SSH가 거부합니다.
  • 700은 비공개 디렉터리에, 775/664는 여러 사용자가 프로젝트를 공유할 때 씁니다.

숫자의 원리

사용자 구분마다 8진수 한 자리가 있으며 읽기 = 4, 쓰기 = 2, 실행 = 1을 더해 만듭니다. 디렉터리에서 읽기는 이름 목록 보기, 쓰기는 안에서 파일 만들기와 지우기, 실행은 디렉터리에 들어가거나 안의 파일에 접근하는 것을 뜻합니다.

맨 앞의 선택적 자리에는 특수 비트가 들어갑니다: setuid = 4, setgid = 2, 스티키 = 1. 기호 표기에서는 실행 글자를 대신해 setuid와 setgid는 s, 스티키는 t로 표시됩니다. 대문자 S나 T는 특수 비트는 있는데 실행 권한이 없다는 뜻으로, 거의 항상 실수입니다.

해당 umask도 보여 줍니다. 기본 umask가 777에서 빼는 비트로, umask가 022이면 디렉터리는 755, 파일은 644가 됩니다.

자주 묻는 질문

› chmod 755는 무슨 뜻인가요?

각 자리는 소유자, 그룹, 기타 사용자를 뜻합니다. 7 = 읽기(4) + 쓰기(2) + 실행(1), 5 = 읽기 + 실행입니다. 따라서 755는 소유자는 모든 작업을, 나머지는 읽기와 실행을 할 수 있다는 뜻이며 rwxr-xr-x로 씁니다. 스크립트와 디렉터리에 흔히 쓰는 모드입니다.

› 644와 755의 차이는 무엇인가요?

644(rw-r--r--)에는 실행 비트가 없어 HTML, 이미지, 설정 파일 같은 일반 파일에 맞습니다. 755는 모두에게 실행 권한을 더한 것으로, 프로그램을 실행하거나 디렉터리에 들어가려면 필요합니다.

› chmod 777은 왜 피해야 하나요?

777은 시스템의 모든 사용자가 파일을 바꾸거나 교체할 수 있게 합니다. 웹 서버라면 침해된 어떤 프로세스든 코드를 다시 쓸 수 있다는 뜻입니다. 대신 chown으로 소유자를 바로잡고 디렉터리는 755, 파일은 644로 두세요.

› setuid, setgid, 스티키 비트란 무엇인가요?

맨 앞에 붙는 네 번째 8진수 자리입니다. setuid(4)는 프로그램을 소유자로 실행하고, setgid(2)는 그룹으로 실행하거나 디렉터리 안의 새 파일이 그룹을 상속하게 합니다. 스티키 비트(1)는 /tmp 같은 공유 디렉터리에서 다른 사람의 파일을 지우지 못하게 합니다. ls 출력에서는 실행 자리에 s와 t로 나타납니다.