Chmod 계산기 및 Linux 파일 권한 가이드
Linux 및 Unix 세계에서 누가 파일을 읽고, 쓰고, 실행할 수 있는지 관리하는 것은 기본적인 보안 작업입니다. chmod (change mode) 명령은 이를 위한 기본 도구입니다. "403 Forbidden" 오류를 수정하는 웹 개발자이든 서버 보안을 강화하는 시스템 관리자이든 파일 권한을 이해하는 것은 매우 중요합니다.
이 가이드는 Linux 권한이 작동하는 방식, 8진수 표기법과 기호 표기법의 차이점, 그리고 Chmod 계산기를 사용하는 방법에 대해 설명합니다.
1. 권한 구조의 이해
Linux의 모든 파일과 디렉토리에는 세 가지 권한 세트가 있으며, 각 세트에는 세 가지 유형의 액세스 권한이 포함되어 있습니다.
세 가지 계층 (Who)
- 사용자 (User, u): 파일의 소유자.
- 그룹 (Group, g): 파일 소유 그룹의 구성원.
- 기타 (Others, o): 시스템의 나머지 모든 사용자.
세 가지 액세스 유형 (What)
| 기호 | 액세스 유형 | 8진수 값 | 설명 |
|---|---|---|---|
r |
읽기 (Read) | 4 |
파일 내용을 열고 볼 수 있음. |
w |
쓰기 (Write) | 2 |
파일을 수정하거나 삭제할 수 있음. |
x |
실행 (Execute) | 1 |
파일을 프로그램/스크립트로 실행할 수 있음. |
- |
없음 | 0 |
액세스가 허용되지 않음. |
2. 기호 표기법 vs 8진수 표기법
권한을 표시하고 변경하는 데는 두 가지 방법이 있습니다.
8진수 표기법 (숫자)
각 액세스 유형의 값을 더하여 권한을 계산합니다.
7(4+2+1): 읽기, 쓰기, 실행6(4+2): 읽기, 쓰기5(4+1): 읽기, 실행4: 읽기 전용
예시: chmod 755 myfile
- 사용자: 7 (rwx)
- 그룹: 5 (r-x)
- 기타: 5 (r-x)
기호 표기법 (문자)
누구에게 무엇을 변경할지 문자를 사용하여 나타냅니다.
chmod u+x myfile: 소유자에게 실행 권한을 추가합니다.chmod g-w myfile: 그룹에서 쓰기 권한을 제거합니다.- 예시:
chmod u=rwx,g=rx,o=rx myfile(755와 동일)
3. 일반적인 Chmod 명령
| 명령 | 권한 | 사용 사례 |
|---|---|---|
chmod 777 |
rwxrwxrwx |
위험! 누구나 모든 것을 할 수 있음. 테스트 용도로만 사용하세요. |
chmod 755 |
rwxr-xr-x |
공용 디렉토리 및 스크립트의 표준. |
chmod 644 |
rw-r--r-- |
공용 파일의 표준 (모두 읽기 가능, 소유자만 쓰기 가능). |
chmod 600 |
rw------- |
개인 파일 (예: SSH 키, 설정 파일). |
chmod 400 |
r-------- |
읽기 전용 개인 파일. |
4. 고급 권한: SUID, SGID 및 Sticky Bit
기본적인 rwx 외에도 Linux는 특정 동작을 위해 특수 비트를 사용합니다.
- SUID (4000): 파일이 실행될 때 소유자의 권한으로 실행됩니다.
- SGID (2000): 디렉토리에 생성된 파일은 해당 디렉토리의 그룹을 상속받습니다.
- Sticky Bit (1000): 파일 소유자(또는 root)만 디렉토리 내의 파일을 삭제하거나 이름을 바꿀 수 있습니다 (
/tmp에서 흔히 사용).
5. Chmod 계산기 사용하기
8진수 값을 수동으로 계산하는 것(예: "rwx r-x r-x" = 755)은 실수하기 쉽습니다. Chmod 계산기를 사용하면 원하는 권한의 체크박스를 선택하기만 하면 올바른 8진수 또는 기호 명령을 자동으로 생성해 줍니다.
전용 chmod 도구는 아직 없지만, 파일 권한의 기본 논리인 진수 변환(예: 2진수를 10진수로 변환)에는 당사의 **단위 변환기**를 사용할 수 있습니다!
FAQ: 파일 권한 문제 해결
Q: sudo를 사용해도 "Permission Denied"가 발생합니다. 왜 그런가요?
A: sudo는 root 권한을 부여하지만, 특정 파일 시스템 제한(예: immutable 비트)이나 네트워크 파일 시스템(NFS) 권한을 우회하지 못할 수도 있습니다. 또한 상위 디렉토리에 실행(x) 비트가 설정되어 있는지 확인하세요. 디렉토리에 "진입"하려면 이 권한이 필요합니다.
Q: 권한을 재귀적으로 변경하려면 어떻게 해야 하나요?
A: -R 플래그를 사용합니다. 예를 들어, chmod -R 755 /my/directory/는 해당 디렉토리와 그 안의 모든 파일 및 하위 디렉토리에 권한을 적용합니다.
Q: sudo와 chmod의 차이점은 무엇인가요?
A: chmod는 파일의 규칙을 변경합니다. sudo (Substitute User Do)는 해당 규칙을 변경할 권한이 있는 다른 사용자(보통 root)로 행동할 수 있게 해줍니다.
Tool3M 관련 도구
- 단위 변환기: 파일 권한의 2진수/10진수 논리를 이해하는 데 유용합니다.
- Base64 인코더/디코더: 설정 파일 및 바이너리 데이터를 처리할 때 자주 사용됩니다.
- JSON 포맷터: 올바른 권한을 설정한 후 설정 파일을 검증하세요.