1. 개요
Linux 파일 시스템의 권한은 3자리 숫자로 표현되며, 각 자리수는 소유자(owner), 그룹(group), 기타 사용자(other)에 대한 읽기(read), 쓰기(write), 실행(execute) 권한 비트를 나타냅니다. 755는 소유자에게 읽기·쓰기·실행 권한을, 그룹·기타 사용자에게 읽기·실행 권한을 허용하며, 777은 모든 사용자에게 모든 권한을 부여합니다. 보안상 777은 가능한 피해야 하며, 디렉토리는 755, 파일은 644 사용을 권장합니다. 권한 설정을 위해 chmod 명령어와 find를 조합해 재귀적으로 적용하고, chown·chgrp로 소유자·그룹을 정확히 지정해야 합니다.
2. chmod 모드 숫자 의미
2-1. 숫자별 권한 비트
- 4(Read) : 파일 읽기 또는 디렉토리 목록 조회 권한
- 2(Write) : 파일 쓰기 또는 디렉토리 내부 변경 권한
- 1(Execute) : 파일 실행 또는 디렉토리 이동 권한
세 개의 비트를 더해 한 자리 숫자로 표현하며, 예를 들어 7은 4+2+1로 읽기·쓰기·실행 전체 권한을 의미합니다
2-1. 755와 777 비교
- 755 (rwxr-xr-x):
- 소유자: 읽기·쓰기·실행
- 그룹·기타: 읽기·실행
- 777 (rwxrwxrwx):
- 모든 사용자에게 읽기·쓰기·실행 권한 부여
- 보안상 위험 (어떤 사용자도 파일을 수정·실행 가능)
Drupal 커뮤니티에서도 “777은 모든 사용자에게 쓰기 권한을 주므로 가능하면 사용하지 말 것”을 권고합니다.
3. chmod 관련 주요 명령어와 사용 예제
3-1. chmod 755
chmod 755 filename
chmod 755 dirname
- 소유자는 rwx, 그룹·기타는 r-x 권한을 부여합니다.
- 웹서버 디렉토리(예: Laravel public) 용도로 적합합니다.
3-2. chmod 777
chmod 777 filename
chmod 777 dirname
- 소유자·그룹·기타 모두에 rwx 권한을 부여합니다.
- 보안을 위해 일시적인 디버깅 외에는 자제해야 합니다.
3-3. 재귀적 적용 및 setgid
- 재귀적 적용: 하위 모든 파일·디렉토리에 동일 권한 적용-R 옵션은 디렉토리 내부를 포함해 설정을 내리도록 합니다.
- chmod -R 755 /path/to/project chmod -R 777 /path/to/temp
- setgid (그룹 권한 상속):디렉토리 안에서 생성되는 파일이 상위 디렉토리의 그룹 권한을 물려받게 합니다.
- find /path/to/project -type d -exec chmod g+s {} \;
4. 위험도와 권장 설정
- 777 사용 위험:
- 악의적 스크립트 업로드·실행 가능성 증가
- 파일 무단 변경·삭제 등 시스템 침해로 이어질 수 있음
- 권장 패턴:
- 디렉토리: 755 (필요 시 775로 그룹 쓰기 허용)
- 파일: 644 (chmod 644 filename)
- 웹서버가 파일을 생성해야 할 디렉토리(storage, cache)만 775 로 제한적 허용
'개발 환경 | 도구 > 서버 | 인프라 | 배포 | 운영' 카테고리의 다른 글
[Oracle Cloud] 기본 설정 및 SSH 접속 방법 등의 기본 세팅 (0) | 2025.04.20 |
---|---|
[Nginx, Apache] Nginx vs Apache 및 내장 서버 비교: 아키텍처·성능·사내 DNS 운영 (1) | 2025.04.20 |
[부하 테스트] Grafana 대시보드 해당 값 설명 (0) | 2025.02.24 |
[L4 로드 밸런서] L4 스위치, 트래픽 분배, 부하 테스트 방법 (0) | 2025.02.16 |
[온프레미스 vs 클라우드] IT 인프라 구축 시 고려해야 할 모든 것 (0) | 2025.02.08 |