맥 터미널 파일 권한 변경 방법을 찾느라 chmod 명령어의 숫자와 기호 조합 때문에 작업이 멈춰버린 상황입니다. 개발자나 시스템 관리자가 아니라면 755나 644 같은 숫자 코드와 u+x 같은 기호 옵션이 무엇을 의미하는지 즉각적으로 파악하기 어렵기 때문입니다. 이 글에서는 복잡한 옵션의 원리를 분석하고, 숫자 모드와 기호 모드를 상황에 맞게 선택하여 완벽하게 제어하는 맥 터미널 파일 권한 변경 방법을 단계별로 정리합니다.
함께 보면 좋은 글: 맥 화면 밝기 조절 안될 때 — 간단 해결 5단계
파일 권한 문제는 단순히 접근 거부 메시지를 넘어, 웹 서버 구동 시 오류를 일으키거나 스크립트 실행을 차단하는 치명적인 원인이 됩니다. macOS는 유닉스 기반의 보안 체계를 사용하므로, 터미널을 통해 정확하게 권한을 설정하는 것이 필수적입니다. 본문에서는 현재 권한 상태를 확인하는 법부터 숫자 코드의 계산 원리, 폴더 내 모든 파일을 일괄 적용하는 고급 기법까지 다룹니다.
- 현재 권한 상태를 확인하는 ls -l 명령어와 출력 결과 해석법
- 숫자 모드(Numeric Mode)와 기호 모드(Symbolic Mode)의 차이와 사용 시나리오
- sudo를 활용한 소유권 변경과 재귀적 옵션을 통한 일괄 처리 방법
- 흔히 하는 실수를 피하는 안전한 권한 설정 가이드
맥 터미널에서 chmod와 chown 명령만으로 파일 권한을 5단계만에 빠르게 변경해 비용 없이 바로 적용할 수 있다.
왜 chmod 명령어 옵션은 이렇게 헷갈리는가
맥 터미널 파일 권한 변경 방법을 이해하려면 먼저 macOS가 파일을 보호하는 기본 원리를 알아야 합니다. macOS는 유닉스 기반 운영체제인 Darwin을 기반으로 하며, 파일마다 소유자(Owner), 그룹(Group), 그리고 기타 사용자(Others)에 대해 읽기(Read), 쓰기(Write), 실행(Execute)의 세 가지 권한을 부여합니다. 터미널에서 ls -l 명령어를 입력하면 파일 목록 앞에 -rwxr-xr--와 같은 문자열이 보이는데, 이것이 바로 권한의 현황입니다.
많은 사용자가 chmod 옵션 앞에서 멈추는 이유는 이 권한을 표현하는 방식이 두 가지이기 때문입니다. 하나는 4, 2, 1 같은 숫자를 더해서 사용하는 '숫자 모드(Numeric Mode)'이고, 다른 하나는 u+x 같은 알파벳 기호를 사용하는 '기호 모드(Symbolic Mode)'입니다. 상황에 따라 유리한 방식이 다른데, 이 둘의 차이를 명확히 구분하지 못하면 명령어를 잘못 입력하여 보안상 위험을 초래하거나 파일을 실행하지 못하는 사태가 발생합니다. 예를 들어, 웹 서버 디렉토리에 잘못된 권한을 설정하면 403 Forbidden 오류가 발생할 수 있습니다.
| 구분 | 숫자 모드 (예: 755) | 기호 모드 (예: u+x) |
|---|---|---|
| 표기 방식 | 숫자를 조합하여 권한을 한 번에 설정 | 기존 권한에서 특정 권한만 더하거나 뺌 |
| 장점 | 권한을 정확하고 명확하게 고정할 때 유리 | 현재 상태를 유지하며 일부만 수정할 때 편리 |
| 주요 사용처 | 스크립트, 설정 파일 초기 설정 | 임시로 실행 권한 부여, 특정 사용자 권한 조정 |
Apple 공식 개발자 문서에 따르면, 파일 시스템의 권한은 데이터 무결성과 사용자 개인정보 보호를 위한 핵심 메커니즘입니다. 따라서 터미널 사용자는 자신이 입력하는 명령어가 시스템 보안에 미치는 영향을 정확히 이해해야 합니다. 숫자 모드는 각 권한(읽기=4, 쓰기=2, 실행=1)을 합산하여 값을 만듭니다. 예를 들어 소유자에게 모든 권한(4+2+1=7)을 주고, 그룹과 others에게 읽기와 실행만(4+1=5) 주려면 755가 됩니다. 이 원리만 알면 숫자 코드를 외우지 않고도 필요한 권한을 즉시 계산할 수 있습니다.
Photo by Pavel Danilyuk on Pexels
숫자 모드를 활용한 정확한 맥 터미널 파일 권한 변경 방법
가장 빠르고 정확하게 권한을 설정하고 싶다면 숫자 모드가 정답입니다. 특히 웹 서버 구축이나 셸 스크립트 배포처럼 권한이 명확히 고정되어야 하는 상황에서 유리합니다. 예를 들어, 맥북(M2 칩 탑재 모델 등)에서 로컬 개발 환경을 구축할 때 PHP나 Python 파일은 644, 실행 파일은 755로 설정하는 것이 일반적입니다. 이 방식은 현재 설정된 권한에 상관없이 지정한 숫자로 권한을 덮어쓰기 때문에, 예기치 않은 과거 권한 잔재를 제거할 수 있습니다.
권한 계산하기
소유자, 그룹, 기타 사용자에게 부여할 권한을 각각 계산합니다. 읽기는 4, 쓰기는 2, 실행은 1입니다. 모든 권한을 주려면 7, 읽기와 실행만 주려면 5, 읽기와 쓰기만 주려면 6입니다.
chmod 명령어 입력
터미널을 열고 chmod 뒤에 계산한 숫자와 파일 경로를 입력합니다. 예를 들어 chmod 755 script.sh를 입력하면 소유자는 모든 권한을, 그룹과 others는 읽기와 실행 권한을 갖게 됩니다.
결과 확인
ls -l script.sh를 입력하여 -rwxr-xr-x로 변경되었는지 확인합니다.
이 방법의 강점은 '절대적'이라는 점입니다. 이전에 어떤 권한이 설정되어 있었든 간에 명령어를 입력하는 순간 지정한 숫자로 초기화됩니다. 따라서 보안 설정이 깨끗해야 하는 배포 환경에서 가장 신뢰할 수 있는 방식입니다.
기호 모드로 직관적으로 권한 제어하기
동영상으로 보는 맥 터미널 파일 권한 변경 방법
글로 충분하지 않다면 관련 영상을 함께 보세요. 클릭하면 YouTube에서 검색 결과로 이동합니다.
숫자 모드가 '초기화'라면, 기호 모드는 '수정'에 가깝습니다. 현재 상태에서 특정 권한만 켜거나 끌 때 매우 유용합니다. u+x라는 표현을 풀어보면 '사용자(User)에게 실행(Execute) 권한을 더하라(Add)'는 의미입니다. 이미 복잡하게 설정된 권한이 있는데, 여기에 실행 권한 하나만 추가하고 싶다면 기호 모드가 훨씬 안전하고 빠릅니다.
대상 지정
u(소유자), g(그룹), o(기타 사용자), a(전체) 중 대상을 선택합니다.
연산자 선택
+(권한 추가), -(권한 제거), =(권한 설정) 중 하나를 선택합니다.
권한 지정 및 실행
r(읽기), w(쓰기), x(실행)를 조합하여 입력합니다. 예를 들어 chmod go-w myfile.txt는 그룹과 기타 사용자의 쓰기 권한을 제거하여 실수로 수정하는 것을 막습니다.
기호 모드는 스크립트 내에서 조건부로 권한을 조절할 때 자주 사용됩니다. 특히
chmod +x filename처럼 대상(a)을 생략하면 기본적으로 모든 사용자에게 실행 권한을 부여하므로, 다운로드 받은 설치 스크립트를 실행 가능하게 만들 때 매우 편리합니다.
폴더 내 모든 파일 권한을 일괄 변경하는 법
파일 권한 변경 체크리스트
- 터미널 열기:
+ Space → "Terminal" - 대상 디렉터리로 이동:
cd /path/to/folder - 파일 권한 부여:
chmod 755 myfile.txt - 디렉터리 전체에 적용하려면:
chmod -R 644 myfolder - 변경 확인:
ls -l myfile.txt(또는ls -l전체)
개발 작업 중 특정 디렉토리에 속한 수백 개의 파일 권한을 한 번에 바꿔야 할
자주 묻는 질문
Q. 터미널에서 파일 권한을 확인하려면 어떤 명령어를 써야 하나요?
A. `ls -l 파일이름` 명령어를 입력하면 파일의 현재 권한, 소유자, 그룹 등을 확인할 수 있습니다. 권한은 앞부분의 `-rwxr-xr--` 형태로 표시됩니다.
Q. chmod 명령어로 권한을 755로 바꾸는 방법은?
A. `chmod 755 파일이름`이라고 입력하면 소유자는 읽기·쓰기·실행, 그룹과 다른 사용자는 읽기·실행 권한을 갖게 됩니다. 숫자 7은 4+2+1, 5는 4+1을 의미합니다.
Q. 파일 소유자를 현재 사용자로 바꾸고 싶어요. 어떻게 해야 하나요?
A. `sudo chown $(whoami) 파일이름` 명령을 사용하면 현재 로그인한 사용자가 파일의 소유자가 됩니다. `sudo`가 필요하므로 관리자 비밀번호를 입력해야 합니다.
Q. 디렉터리와 그 안의 모든 파일 권한을 한 번에 바꾸려면?
A. `chmod -R 755 디렉터리이름` 옵션 `-R`(재귀) 를 주면 해당 디렉터리와 하위 모든 파일·폴더에 동일한 권한이 적용됩니다. 권한을 변경할 때는 신중히 선택하세요.
함께 읽으면 좋은 글
