# chmod 계산기

Unix 파일 권한을 8진수(755), 문자(rwxr-xr-x), ls -l, chmod 절 사이에서 변환합니다. 체크박스 격자와 setuid, setgid, sticky 비트를 지원합니다.

https://codeknife.dev/ko/chmod-gyesangi/

## 기능

Unix 파일 권한을 8진수(`755`), 권한 문자(`rwxr-xr-x`), `ls -l` 줄, `chmod` 절(`u=rwx,g=rx,o=rx`) 사이에서 변환합니다. 격자를 선택하면 setuid, setgid, sticky 비트를 포함한 모든 표기가 따라 바뀝니다.

## 사용 방법

1. 아무 표기로나 모드를 입력하거나 체크박스를 선택하세요.
2. 모든 표기로 확인하고 그중 하나를 고치세요.
3. 변환된 값을 복사하거나, 파일 유형을 골라 디렉터리나 링크의 `ls -l` 줄을 확인하세요.

## 예시

`755`는 `rwxr-xr-x`이며, 소유자는 읽기·쓰기·실행을 할 수 있고 나머지는 읽기와 실행을 할 수 있습니다. `644`는 파일의 일반적인 모드인 `rw-r--r--`, `1777`은 `/tmp` 같은 공유 디렉터리의 `rwxrwxrwt`입니다.

## 알아두기

- 각 자리는 소유자, 그룹, 나머지 모두의 읽기 4, 쓰기 2, 실행 1을 더한 값입니다. 앞에 넷째 자리를 붙이면 setuid 4, setgid 2, sticky 1이 더해집니다.
- 문자에서는 특수 비트가 실행 자리를 차지합니다. setuid와 setgid는 `s`, sticky는 `t`입니다. 대문자 `S`나 `T`는 실행 비트 없이 특수 비트만 설정되었다는 뜻입니다.
- `u=rwx,g=rx,o=rx` 같은 절은 각 부류를 그대로 설정하며, 어떤 절에도 나오지 않는 부류는 권한이 없습니다. `u+x` 같은 상대 형식은 파일의 현재 모드에 따라 달라지므로 여기서는 읽지 않습니다.

## chmod의 숫자는 무슨 뜻인가요?

각 자리는 한 부류의 읽기(4), 쓰기(2), 실행(1)을 더한 값입니다. 첫째 자리는 소유자, 둘째는 그룹, 셋째는 나머지 모두입니다. 그래서 755는 소유자가 읽기·쓰기·실행을 할 수 있고 나머지는 읽기와 실행을 할 수 있다는 뜻입니다. 앞에 넷째 자리를 붙이면 setuid(4), setgid(2), sticky(1)가 더해집니다.

## 자주 묻는 질문

### setuid, setgid, sticky 비트란 무엇인가요?

setuid와 setgid가 있으면 프로그램이 실행한 사람이 아니라 소유자나 그룹의 권한으로 실행됩니다. 디렉터리에서 setgid는 새 파일이 그룹을 물려받게 하고, sticky 비트(/tmp처럼)는 파일 소유자만 삭제할 수 있게 합니다. 문자로는 실행 자리에 s나 t로 나타나며, 대문자 S나 T는 실행 비트가 설정되지 않았음을 뜻합니다.

### 777은 왜 좋지 않나요?

시스템의 모든 사용자가 파일을 바꾸거나 교체할 수 있게 됩니다. 소유자에게는 필요한 권한을, 그룹이나 기타에는 꼭 필요한 접근만 주세요. 스크립트는 보통 755, 비공개 파일은 600입니다.

### 이 도구는 입력을 어딘가로 보내나요?

아니요. 모든 처리는 브라우저에서 이루어집니다. 입력한 내용은 서버로 전송되지 않습니다.