> 파일 및 디렉토리 관리 > chmod

chmod: 파일 및 디렉토리 권한 변경

chmod 명령어는 파일 및 디렉토리의 접근 권한(읽기, 쓰기, 실행)을 변경하는 데 사용됩니다. 특히 `-R` (recursive) 옵션을 사용하면 지정된 디렉토리와 그 하위의 모든 파일 및 서브디렉토리에 대해 권한을 일괄적으로 변경할 수 있어, 대규모 권한 설정 작업에 매우 유용합니다.

개요

chmod는 파일 시스템 객체에 대한 사용자, 그룹, 기타 사용자의 읽기(r), 쓰기(w), 실행(x) 권한을 설정합니다. `-R` 옵션은 이 권한 변경 작업을 지정된 경로의 모든 하위 항목에 재귀적으로 적용하여, 복잡한 디렉토리 구조의 권한을 효율적으로 관리할 수 있게 합니다.

주요 기능

  • 파일 및 디렉토리 접근 권한 변경
  • 숫자(8진수) 모드 및 심볼릭 모드 지원
  • 재귀적 권한 변경 (`-R` 옵션)
  • 보안 및 시스템 관리의 핵심 도구

주요 옵션

chmod 명령어는 다양한 옵션을 통해 권한 변경 방식을 제어합니다. 특히 `-R` 옵션은 하위 항목에 대한 일괄 적용에 필수적입니다.

재귀 옵션

권한 모드 (인자)

기타 옵션

생성된 명령어:

명령어를 조합해 보세요.

설명:

`chmod` 명령어를 실행합니다.

위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.

사용 예시

chmod -R은 디렉토리 구조 전체의 권한을 효율적으로 관리할 때 주로 사용됩니다.

디렉토리와 하위 파일에 755 권한 적용

chmod -R 755 /var/www/html

웹 서버 문서 루트와 같이 소유자에게 모든 권한을 주고, 그룹과 다른 사용자에게는 읽기 및 실행 권한만 부여할 때 사용합니다.

디렉토리와 하위 파일에 소유자만 쓰기 권한 추가

chmod -R u+w /home/user/data

기존 권한을 유지하면서 소유자에게만 쓰기 권한을 추가합니다.

디렉토리에는 실행 권한, 파일에는 읽기 권한만 재귀적으로 부여

chmod -R a+rX /srv/app/public

대문자 'X'는 디렉토리에는 실행 권한을 부여하고, 파일에는 이미 실행 권한이 있는 경우에만 실행 권한을 부여합니다. 이는 웹 콘텐츠 등에서 디렉토리 탐색은 허용하되, 불필요한 파일 실행은 막을 때 유용합니다.

모든 하위 파일 및 디렉토리에서 그룹 및 기타 쓰기 권한 제거

chmod -R go-w /path/to/sensitive_data

민감한 데이터가 있는 디렉토리에서 그룹 및 다른 사용자의 쓰기 권한을 제거하여 보안을 강화합니다.

팁 & 주의사항

chmod -R 사용 시에는 시스템 보안과 안정성에 영향을 줄 수 있으므로 각별한 주의가 필요합니다.

주의사항

  • **신중한 사용**: `-R` 옵션은 광범위하게 적용되므로, 잘못된 권한 설정은 시스템 보안 취약점이나 서비스 장애를 유발할 수 있습니다. 항상 변경 전 백업 또는 테스트 환경에서 확인하는 것이 좋습니다.
  • **'X' 권한의 활용**: `chmod -R a+rX /path`와 같이 대문자 `X`를 사용하면, 디렉토리에는 실행 권한을 부여하고 일반 파일에는 실행 권한이 이미 있는 경우에만 실행 권한을 부여합니다. 이는 웹 서버 콘텐츠 등에서 디렉토리 탐색은 허용하되, 불필요한 파일 실행은 막을 때 유용합니다.
  • **`find` 명령어와의 조합**: 특정 조건(예: 특정 확장자 파일만)에 맞는 파일에만 권한을 변경하고 싶다면 `find` 명령어와 `exec` 옵션을 조합하는 것이 더 안전하고 효과적입니다. 예: `find /path -type f -name '*.sh' -exec chmod 700 {} \;`
  • **최소 권한 원칙**: 필요한 최소한의 권한만 부여하는 '최소 권한 원칙'을 따르세요. 예를 들어, `777`과 같은 모든 권한 부여는 보안상 매우 위험합니다.

권한 모드 요약

각 권한이 의미하는 바와 8진수 값입니다.

  • 읽기 (r): 파일 내용 읽기, 디렉토리 내용 목록 보기 (8진수 값: 4)
  • 쓰기 (w): 파일 내용 변경, 디렉토리 내 파일 생성/삭제 (8진수 값: 2)
  • 실행 (x): 파일 실행, 디렉토리 진입 (8진수 값: 1)

동일 카테고리 명령어