linux chmod permissions sysadmin cheat-sheet security

Chmod 계산기 및 Linux 파일 권한 가이드

Linux 파일 권한, 기호 표기법 vs 8진수 표기법, chmod 명령에 대한 포괄적인 참조 가이드입니다. chmod 계산기를 사용하여 파일을 안전하게 보호하는 방법을 알아보세요.

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 포맷터: 올바른 권한을 설정한 후 설정 파일을 검증하세요.