Linux 파일 권한은 시스템 보안의 핵심입니다. Unix 시스템의 모든 파일과 디렉터리에는 누가 읽기, 쓰기, 실행할 수 있는지 결정하는 메타데이터가 있습니다. 웹 애플리케이션 배포, 서버 보안 강화, 배포 스크립트 디버깅 등 chmod 명령어와 파일 권한 숫자의 이해는 필수입니다. 이 포괄적인 chmod 계산기 가이드는 기본 개념부터 특수 비트까지 모든 것을 다룹니다.
인터랙티브 chmod 계산기로 권한을 즉시 시각화하세요.
Chmod Calculator →1. Linux 파일 권한이란?
Linux의 모든 파일과 디렉터리에는 세 가지 사용자 범주가 있습니다. 소유자는 일반적으로 파일 생성자입니다. 그룹은 접근 권한을 공유하는 사용자 집합입니다. 기타는 시스템의 나머지 모든 사용자를 의미합니다. ls -l 명령어로 권한 문자열을 확인할 수 있습니다.
각 범주에는 세 가지 접근 유형을 부여할 수 있습니다. 읽기 (r)는 파일 내용 보기나 디렉터리 목록 표시를 허용합니다. 쓰기 (w)는 파일 수정이나 디렉터리 내 항목 생성/삭제를 허용합니다. 실행 (x)은 프로그램 실행이나 디렉터리 진입을 허용합니다.
일반적인 <code>ls -l</code> 출력 예시:
-rwxr-xr-- 1 alice developers 4096 Feb 20 deploy.sh
소유자: rwx (7) | 그룹: r-x (5) | 기타: r-- (4)
권한 번호: 7542. 권한 숫자 이해하기 (8진법 표기)
Linux는 각 권한 세트를 0에서 7까지의 8진수로 표현합니다: 읽기 = 4, 쓰기 = 2, 실행 = 1. 755와 같은 세 자리 숫자는 세 범주 모두를 인코딩합니다.
8진수 참조 테이블:
| 8진수 | 기호 | 의미 |
|---|---|---|
0 | --- | No permission |
1 | --x | Execute only |
2 | -w- | Write only |
3 | -wx | Write + Execute |
4 | r-- | Read only |
5 | r-x | Read + Execute |
6 | rw- | Read + Write |
7 | rwx | Read + Write + Execute |
완전한 권한 번호를 계산하려면 각 자릿수를 개별적으로 계산합니다. 예: 소유자 읽기+쓰기 (4+2=6), 그룹 읽기 (4), 기타 없음 (0) = 640.
3. chmod 권한 참조 테이블
가장 많이 사용되는 chmod 권한 조합의 포괄적인 참조 테이블입니다.
| 8진수 | 기호 | 의미 | 일반적인 용도 |
|---|---|---|---|
777 | rwxrwxrwx | 모든 사용자에게 전체 접근 | 임시 디버깅만; 프로덕션에서 절대 사용 금지 |
755 | rwxr-xr-x | 소유자 전체; 그룹/기타 읽기+실행 | 디렉터리, 실행 스크립트, 웹 서버 문서 루트 |
750 | rwxr-x--- | 소유자 전체; 그룹 읽기+실행; 기타 없음 | 공유 프로젝트 디렉터리 |
700 | rwx------ | 소유자만 전체 접근 | ~/.ssh 디렉터리, 비공개 스크립트 |
666 | rw-rw-rw- | 모든 사용자 읽기+쓰기; 실행 없음 | 거의 사용하지 않음; 임시 공유 파일 |
644 | rw-r--r-- | 소유자 읽기+쓰기; 그룹/기타 읽기 | HTML, CSS, PHP 파일, 설정 파일 |
640 | rw-r----- | 소유자 읽기+쓰기; 그룹 읽기; 기타 없음 | 로그 파일, 민감한 설정 |
600 | rw------- | 소유자만 읽기+쓰기 | SSH 개인키, .env 파일, 데이터베이스 자격 증명 |
400 | r-------- | 소유자만 읽기 | SSL 인증서, 읽기 전용 시크릿 |
775 | rwxrwxr-x | 소유자 전체; 그룹 전체; 기타 읽기+실행 | 공유 업로드 디렉터리 |
4. chmod 명령어 사용법
chmod 명령어는 파일과 디렉터리 권한을 변경합니다. 숫자(8진수) 모드와 기호 모드 두 가지를 지원합니다.
숫자 모드
숫자 모드에서는 3자리 또는 4자리 8진수를 지정합니다:
chmod 755 script.sh # rwxr-xr-x
chmod 644 config.json # rw-r--r--
chmod 600 id_rsa # rw-------
chmod 400 cert.pem # r--------
chmod -R 755 /var/www/html # Recursive on directory기호 모드
기호 모드는 chmod [ugoa][+-=][rwxXst] 구문을 사용합니다:
- 대상: u (소유자), g (그룹), o (기타), a (모두)
- 연산자: + (추가), - (제거), = (정확히 설정)
- 권한: r (읽기), w (쓰기), x (실행)
chmod u+x script.sh # Add execute for owner
chmod g-w file.txt # Remove write from group
chmod o+r document.pdf # Add read for others
chmod a+x run.sh # Add execute for all
chmod u=rwx,go=rx dir/ # Owner=rwx, group+others=rx (755)
chmod go-rwx secret.key # Remove all from group+others재귀적 chmod
chmod -R로 재귀적으로 변경합니다:
# Set directories to 755 and files to 644 (web server standard)
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;
# Make all .sh files executable
find /opt/scripts -name "*.sh" -exec chmod 755 {} \;chmod 계산기로 정확한 명령어를 생성하세요:
5. 개발자를 위한 일반적인 chmod 패턴
파일 유형마다 특정 권한 설정이 필요합니다. 필수 chmod 패턴 참조입니다.
웹 서버 파일
표준: 파일은 644, 디렉터리는 755:
# Web server document root
chmod 755 /var/www/html
chmod 644 /var/www/html/index.html
chmod 644 /var/www/html/style.css
chmod 644 /var/www/html/.htaccess
# PHP / application files
chmod 644 /var/www/html/app/*.php
chmod 755 /var/www/html/app/storage스크립트와 실행 파일
공유 스크립트는 755, 비공개는 700:
# Shared executable scripts
chmod 755 deploy.sh
chmod 755 /usr/local/bin/my-tool
# Private scripts (owner only)
chmod 700 backup-db.sh
chmod 700 cleanup.shSSH 키와 설정
SSH는 권한에 매우 엄격합니다:
chmod 700 ~/.ssh # SSH directory
chmod 600 ~/.ssh/id_rsa # Private key
chmod 600 ~/.ssh/id_ed25519 # Private key (Ed25519)
chmod 644 ~/.ssh/id_rsa.pub # Public key
chmod 600 ~/.ssh/authorized_keys # Authorized keys
chmod 600 ~/.ssh/config # SSH config file환경 및 시크릿 파일
API 키가 포함된 파일은 소유자만 접근 가능해야 합니다:
chmod 600 .env # Environment variables
chmod 600 .env.production # Production secrets
chmod 600 database.yml # Database credentials
chmod 600 credentials.json # API credentials
chmod 400 ssl-cert.pem # SSL certificate (read-only)업로드 디렉터리
업로드 디렉터리에는 그룹 쓰기 권한이 필요합니다:
chmod 775 /var/www/html/uploads
chmod 775 /var/www/html/tmp
chmod 775 /var/www/html/cache
# Ensure web server group owns the directory
# chown www-data:www-data /var/www/html/uploads6. 특수 권한: setuid, setgid, 스티키 비트
표준 9비트 외에 Linux는 실행 동작을 수정하는 3개의 특수 비트를 지원합니다.
프로세스가 파일 소유자의 권한으로 실행됩니다. 예: /usr/bin/passwd.
디렉터리에서 새 파일이 자동으로 디렉터리의 그룹을 상속합니다.
파일 소유자 또는 root만 삭제 가능. 예: /tmp (1777).
특수 권한 설정:
# SUID: run as file owner
chmod 4755 /usr/bin/passwd
chmod u+s /usr/bin/my-tool
# SGID: inherit group on directory
chmod 2755 /shared/project
chmod g+s /shared/project
# Sticky Bit: prevent deletion by others
chmod 1777 /tmp
chmod +t /shared/uploads
# Combine: SGID + standard permissions
chmod 2775 /team/shared-dir
# Find files with special permissions
find / -perm -4000 -type f 2>/dev/null # Find SUID files
find / -perm -2000 -type f 2>/dev/null # Find SGID files
find / -perm -1000 -type d 2>/dev/null # Find sticky dirs7. 파일 권한 모범 사례
파일 권한은 중요한 방어 계층입니다.
최소 권한 원칙을 따르세요. 필요한 최소한의 권한만 부여하세요.
프로덕션에서 chmod 777은 절대 사용하지 마세요. 모든 사용자에게 전체 접근을 부여합니다.
정기적으로 권한을 감사하세요. find / -perm -777 -type f를 사용하세요.
world-readable 대신 그룹을 사용하세요.
재귀적 chmod에 주의하세요. 항상 경로를 확인하세요.
권한 요구사항을 문서화하세요.
umask로 안전한 기본값을 설정하세요. umask 027을 설정하세요.
chmod 계산기 도구로 빠르고 정확한 권한을 결정하세요.
8. 자주 묻는 질문
chmod 755의 의미는?
chmod 755는 소유자에게 전체 접근(rwx = 7), 그룹과 기타에게 읽기와 실행 접근(r-x = 5)을 설정합니다. 실행 스크립트와 디렉터리의 표준 권한입니다.
chmod 755와 644의 차이는?
chmod 755 (rwxr-xr-x)는 모든 범주에 실행을 허용하며 디렉터리와 스크립트용입니다. chmod 644 (rw-r--r--)는 실행을 제거하고 쓰기를 소유자로 제한하며 일반 파일용입니다.
Linux에서 파일 권한을 확인하는 방법은?
ls -la 명령어로 자세한 정보를 확인합니다. stat 명령어로 더 상세한 정보를 볼 수 있습니다.
가장 안전한 파일 권한은?
실용적으로 400(소유자 읽기만) 또는 600(소유자 읽기+쓰기만)이 가장 제한적인 유용한 권한입니다.
Mac에서 chmod를 사용할 수 있나요?
네. macOS는 BSD Unix 기반이며 Linux와 동일한 구문으로 chmod를 완전히 지원합니다.
무료 온라인 chmod 계산기로 정확한 값을 계산하세요.
Chmod Calculator →