사용 방법
- 소유자, 그룹, 그 외 사용자에 대해 읽기, 쓰기, 실행을 체크합니다. 또는 755, 644 같은 자주 쓰는 값을 누릅니다.
- 8진수(755, 특수 비트가 있으면 4755)나 9글자 rwx 표기를 직접 입력해도 됩니다. 체크박스와 다른 표기가 함께 바뀝니다.
- 8진수 값, rwx 값, 또는 전체 chmod 명령어를 복사합니다. 파일 이름을 바꾸면 명령어에 반영됩니다.
예시
755
→ rwxr-xr-x소유자는 읽기·쓰기·실행, 그룹과 그 외 사용자는 읽기·실행만 가능합니다. 프로그램과 폴더에 흔히 씁니다.
644
→ rw-r--r--소유자는 읽기·쓰기, 나머지는 읽기만 가능합니다. 일반 파일에 흔히 씁니다.
4755
→ rwsr-xr-x맨 앞의 4는 setuid 비트이며, 소유자의 x 자리에 s로 표시됩니다.
rwSr--r--
→ 4644대문자 S는 setuid가 켜져 있지만 소유자의 실행 비트는 꺼져 있다는 뜻입니다.
계산 방식
유닉스 파일 모드는 소유자, 그룹, 그 외 사용자를 위한 세 묶음의 권한 비트와, 선택적인 네 번째 묶음인 특수 비트로 이루어집니다. 각 묶음은 읽기(4), 쓰기(2), 실행(1)으로 만든 0에서 7 사이의 수입니다. 8진수 표기는 이 수를 차례로 이어 쓴 것이라서, 755는 소유자 7, 그룹 5, 그 외 5입니다.
rwx 표기는 ls -l이 같은 모드를 보여 주는 방식입니다. 대상마다 세 글자이고 꺼진 비트는 -로 씁니다. setuid, setgid, 스티키는 소유자, 그룹, 그 외 사용자의 실행 자리에 각각 s, s, t로 나타납니다.
도구는 이 비트에 대한 단순한 산술로 양방향 변환을 하며, 000부터 777까지의 왕복 변환 전체를 자동화된 테스트로 검증합니다. chmod <8진수> <파일> 명령어를 만들어 줄 뿐, 아무것도 실행하지 않으며 어떤 파일도 바꿀 수 없습니다.
출처
자주 묻는 질문
- 8진수의 각 자리는 어떻게 계산하나요?
- 한 자리는 해당 대상의 읽기(4), 쓰기(2), 실행(1)을 더한 값입니다. 첫째 자리는 소유자, 둘째는 그룹, 셋째는 그 외 사용자입니다. 그래서 7은 4+2+1(모두), 6은 4+2(읽기·쓰기), 5는 4+1(읽기·실행), 0은 아무것도 없음입니다.
- setuid, setgid, 스티키 비트는 무엇인가요?
- setuid는 프로그램이 파일 소유자의 권한으로 실행되게 합니다. setgid는 그룹에 대해 같은 일을 하며, 디렉터리에 걸면 그 안에 새로 만든 파일이 디렉터리의 그룹을 물려받습니다. 디렉터리의 스티키 비트는 파일의 소유자, 디렉터리의 소유자, root만 그 안의 파일을 삭제하거나 이름을 바꿀 수 있게 합니다. 공용 /tmp 폴더가 1777을 씁니다.
- 대문자 S와 T는 무슨 뜻인가요?
- rwx 표기에서 특수 비트와 실행 비트가 모두 켜져 있으면 x 자리에 s나 t가 나옵니다. 대문자 S나 T는 특수 비트는 켜져 있는데 실행 비트는 꺼져 있다는 뜻이며, 대개 의도한 설정이 아닙니다.
- 777로 설정해도 되나요?
- 대개는 좋지 않습니다. 777은 시스템의 모든 사용자가 파일을 바꾸고 실행할 수 있게 하므로 보안 위험이 있고, 진짜 권한 문제를 가리기도 합니다. 동작하는 가장 좁은 값을 쓰세요. 프로그램에는 755, 일반 파일에는 644가 흔합니다.
- 서버로 전송되는 것이 있나요?
- 아니요. 변환은 브라우저 안에서 실행되며 페이지는 내 파일을 보지 못합니다.