작동 방식
Unix와 Linux에서 각 파일에는 세 클래스에 대한 권한이 있습니다: 소유자, 그룹, 그리고 나머지("기타"). 각 클래스는 세 가지 권한을 가질 수 있습니다: 읽기(r), 쓰기(w), 실행(x). chmod는 이를 변경하는 명령입니다.
권한은 동등한 두 가지 방식으로 표현됩니다: 숫자(8진수)와 기호. 8진수에서는 각 클래스가 0에서 7까지의 한 자리로, 4(읽기) + 2(쓰기) + 1(실행)의 합입니다. 기호로는 아홉 문자로 쓰이며, 예를 들어 rwxr-xr-x입니다.
앞의 네 번째 자리가 특수 비트를 제어합니다: setuid(4), setgid(2), sticky(1). 이 도구는 양방향으로 변환합니다: 체크박스로 권한을 선택하면 8진수, 기호 표기, 복사용 명령을 얻고, 값을 붙여넣으면 그 내용이 반영되어 표시됩니다.
예시
755rwxr-xr-x소유자는 읽기·쓰기·실행이 가능하고, 그룹과 기타는 읽기와 실행만 가능합니다. 디렉터리와 스크립트에서 전형적입니다.644rw-r--r--소유자는 읽고 쓰며, 그룹과 기타는 읽기만 합니다. 데이터 및 구성 파일에서 일반적입니다.600rw-------소유자만 읽고 쓸 수 있으며, 그 외에는 접근할 수 없습니다. 개인 키에 권장됩니다.4755rwsr-xr-x첫 번째 자리 4는 setuid를 활성화합니다: 프로그램이 파일 소유자의 권한으로 실행됩니다.활용 사례
- 스크립트에 실행 권한 부여하기(chmod 755) 또는 민감한 데이터가 있는 파일 제한하기(chmod 600).
- 튜토리얼의 8진수와 ls -l이 보여주는 것 사이를 비트를 손으로 계산하지 않고 변환하기.
- 서버에서 실행하기 전에 명령이 실제로 어떤 권한을 부여하는지 이해하기.
자주 묻는 질문
왜 755는 세 자리뿐인데 가끔 네 자리가 나타나나요?
세 자리는 사용자, 그룹, 기타를 나타냅니다. 선택 사항이며 앞에 오는 네 번째 자리는 특수 비트(setuid, setgid, sticky)를 제어합니다. 값이 0이면 생략되므로 0755와 755는 같습니다.
rwsr-xr-t에서 s와 t는 무엇을 의미하나요?
이들은 특수 비트를 나타내기 위해 x를 대체합니다. 사용자 블록의 s는 setuid, 그룹 블록에서는 setgid이며, 기타 블록의 t는 sticky 비트입니다. 대문자(S/T)이면 비트는 활성이지만 실행 권한은 없습니다.
chmod 755와 chmod u=rwx,g=rx,o=rx의 차이는 무엇인가요?
차이가 없습니다: 정확히 같은 권한을 만듭니다. 8진수 형식은 더 간결하고 기호 형식은 더 읽기 쉽습니다. chmod는 나머지를 건드리지 않고 u+x(소유자에게 실행 추가) 같은 상대적 변경도 받아들입니다.
SSH 개인 키에는 어떤 권한이 있어야 하나요?
600(rw-------). 그룹이나 기타가 읽을 수 있으면 SSH는 개인 키 사용을 거부합니다. ~/.ssh 폴더는 보통 700을 사용합니다.