rwxr-xr-x
chmod 755 file.sh
OWNER
VALUE
7
GROUP
VALUE
5
OTHERS
VALUE
5
자주 사용하는 권한
파일 권한 구조 (rwx)
rREAD (4)
파일 내용 보기 또는 디렉토리 목록을 조회합니다.
wWRITE (2)
파일 내용 수정 또는 디렉토리에서 파일 생성/삭제합니다.
xEXECUTE (1)
파일을 프로그램으로 실행하거나 디렉토리에 접근합니다.
Chmod 계산기는 Unix/Linux 파일 권한을 숫자 형식과 기호 형식 간에 계산하고 변환하는 도구입니다.
🔢 숫자 모드 입력
• 3자리 숫자 입력 (각 자리는 0-7)
• 첫 번째 자리: 소유자 권한
• 두 번째 자리: 그룹 권한
• 세 번째 자리: 기타 사용자 권한
• 예시: 755 = 소유자(7) + 그룹(5) + 기타(5)
✅ 대화형 체크박스
• 소유자, 그룹, 기타 사용자의 권한 선택/해제
• 읽기(r) = 4, 쓰기(w) = 2, 실행(x) = 1
• 각 카테고리는 계산된 값을 표시
• 권한이 실시간으로 업데이트됨
⚡ 빠른 프리셋
• 일반적인 권한 패턴에서 선택
• 644: 표준 파일 권한 (rw-r--r--)
• 755: 표준 디렉토리 권한 (rwxr-xr-x)
• 777: 모든 사용자 전체 접근 (rwxrwxrwx)
• 700: 소유자만 접근 (rwx------)
💻 명령어 생성
• 파일명을 입력하여 chmod 명령어 생성
• 명령어를 클립보드에 직접 복사
• 터미널에서 사용: chmod 755 파일명
📊 권한 표시
• 숫자 모드: 3자리 숫자 (예: 755)
• 기호 모드: 9개 문자 (예: rwxr-xr-x)
• 명령어 미리보기 자동 업데이트
Chmod(change mode)는 Unix/Linux에서 파일 및 디렉토리의 접근 권한을 변경하는 명령어입니다.
📖 Unix 권한의 역사
Unix 파일 권한은 1970년대 초 Bell Labs의 초기 Unix 버전과 함께 도입되었습니다. 이 시스템은 Dennis Ritchie와 Ken Thompson이 보안과 다중 사용자 접근 제어라는 Unix 철학의 일환으로 설계했습니다.
권한 시스템은 사용자를 세 가지 범주로 나눕니다:
• 소유자(Owner, u): 파일을 소유한 사용자
• 그룹(Group, g): 파일 그룹의 멤버인 사용자
• 기타(Others, o): 시스템의 다른 모든 사용자
각 범주는 세 가지 유형의 권한을 가질 수 있습니다:
• 읽기(Read, r, 4): 파일 내용 보기 또는 디렉토리 목록 보기
• 쓰기(Write, w, 2): 파일 수정 또는 디렉토리에서 파일 생성/삭제
• 실행(Execute, x, 1): 파일을 프로그램으로 실행하거나 디렉토리 접근
🔢 숫자 모드 (8진수)
권한은 3자리 8진수 숫자(0-7)로 표현됩니다:
• 각 자리는 권한 값의 합계
• 4(읽기) + 2(쓰기) + 1(실행) = 7(전체 접근)
• 4(읽기) + 0(쓰기 없음) + 1(실행) = 5(읽기 및 실행)
예시:
• 755 = rwxr-xr-x (소유자: rwx, 그룹: r-x, 기타: r-x)
• 644 = rw-r--r-- (소유자: rw-, 그룹: r--, 기타: r--)
• 777 = rwxrwxrwx (모두: rwx)
🔤 기호 모드
권한은 기호로도 표현할 수 있습니다:
• r = 읽기 권한
• w = 쓰기 권한
• x = 실행 권한
• - = 권한 없음
형식: [소유자][그룹][기타]
예시: rwxr-xr-x의 의미:
• 소유자: 읽기, 쓰기, 실행 (rwx)
• 그룹: 읽기, 실행 (r-x)
• 기타: 읽기, 실행 (r-x)
💡 일반적인 사용 사례
• 644: 표준 파일 (소유자가 편집 가능, 다른 사용자는 읽기만)
• 755: 실행 파일 및 디렉토리 (소유자가 수정 가능, 다른 사용자는 접근만)
• 600: 개인 파일 (소유자만 읽기/쓰기 가능)
• 700: 개인 디렉토리 (소유자만 접근 가능)
• 777: 공개 접근 (보안 위험, 가능한 피하기)
⚠️ 보안 고려사항
• 프로덕션 서버에서 777 사용 금지 (모든 사용자에게 전체 접근 권한)
• 디렉토리의 쓰기 권한에 주의
• 디렉토리에 접근하려면 실행 권한 필요
• 웹 파일은 644, 디렉토리는 755 사용
• 개인 데이터는 600 또는 700 사용
💡 Chmod 모범 사례 가이드
1. 기본 권한
파일 유형에 따른 적절한 기본 권한 설정:
• 일반 파일: 644 (rw-r--r--)
• 스크립트/실행 파일: 755 (rwxr-xr-x)
• 개인 파일: 600 (rw-------)
• 디렉토리: 755 (rwxr-xr-x)
2. 웹 서버 파일
웹 호스팅 환경의 경우:
• HTML/CSS/JS 파일: 644
• PHP/Python 스크립트: 644 (755 아님, 웹 서버가 실행 처리)
• 디렉토리: 755
• 설정 파일: 600 또는 640
• 업로드 디렉토리: 755 (777 아님!)
3. 권한 이해하기
• 파일의 읽기: 내용 보기
• 파일의 쓰기: 내용 수정
• 파일의 실행: 프로그램으로 실행
• 디렉토리의 읽기: 내용 목록 보기
• 디렉토리의 쓰기: 파일 생성/삭제
• 디렉토리의 실행: 디렉토리 접근 (cd 하기 위해 필요)
4. 보안 패턴
절대적으로 필요하지 않으면 사용하지 말 것:
• 777: 모두가 모든 작업 가능 (주요 보안 위험)
• 666: 모두가 읽기 및 쓰기 가능
• 누구나 쓰기 가능한 권한 (xx7)
더 안전한 대안:
• 777 대신 755 또는 775 사용
• 666 대신 644 또는 664 사용
• 공유 접근에는 그룹 사용
5. 재귀적 변경
디렉토리와 모든 내용에 권한 적용:
chmod -R 755 /path/to/directory
재귀적 작업 시 주의하세요!
6. 특수 권한
기본 rwx를 넘어서:
• Setuid (4xxx): 파일 소유자로 실행
• Setgid (2xxx): 그룹 소유자로 실행
• Sticky bit (1xxx): 소유자만 삭제 가능
예시: /tmp 디렉토리의 1755
7. 권한으로 파일 찾기
모든 777 파일 찾기 (보안 점검):
find /path -type f -perm 0777
모든 누구나 쓰기 가능한 파일 찾기:
find /path -type f -perm -002
8. 일반적인 실수
• 모든 것을 777로 만들기 (게으르지만 위험)
• 디렉토리의 실행 권한 잊기
• SSH 키의 잘못된 권한 (600이어야 함)
• 데이터 파일의 실행 권한 (불필요)
9. 디렉토리 요구사항
디렉토리의 파일에 접근하려면 필요한 것:
• 디렉토리의 실행(x) 권한
• 파일 자체에 대한 적절한 권한
• 경로의 모든 상위 디렉토리에 대한 실행 권한
10. 기호형 chmod 명령어
숫자 모드의 대안:
• chmod u+x file (소유자에게 실행 권한 추가)
• chmod g-w file (그룹의 쓰기 권한 제거)
• chmod o=r file (기타 사용자를 읽기 전용으로 설정)
• chmod a+r file (모두에게 읽기 권한 추가)