chmod 계산기
Unix 파일 권한을 8진수(755), 문자(rwxr-xr-x), ls -l, chmod 절 사이에서 변환합니다. 체크박스 격자와 setuid, setgid, sticky 비트를 지원합니다.
코드 예제
내 프로젝트에 그대로 복사해서 쓰세요. 모든 예제는 해당 언어의 표준 라이브러리만 사용하므로 설치할 것이 없습니다.
const mode = parseInt('755', 8)
const letters = [...'rwxrwxrwx'].map((letter, i) => (mode & (0o400 >> i) ? letter : '-'))
console.log(letters.join(''))기능
Unix 파일 권한을 8진수(755), 권한 문자(rwxr-xr-x), ls -l 줄, chmod 절(u=rwx,g=rx,o=rx) 사이에서 변환합니다. 격자를 선택하면 setuid, setgid, sticky 비트를 포함한 모든 표기가 따라 바뀝니다.
사용 방법
- 아무 표기로나 모드를 입력하거나 체크박스를 선택하세요.
- 모든 표기로 확인하고 그중 하나를 고치세요.
- 변환된 값을 복사하거나, 파일 유형을 골라 디렉터리나 링크의
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입니다.
이 도구는 입력을 어딘가로 보내나요?
아니요. 모든 처리는 브라우저에서 이루어집니다. 입력한 내용은 서버로 전송되지 않습니다.