리눅스를 사용하다 보면 어느 순간 이런 메시지를 만나게 됩니다.
“Permission denied (권한이 없습니다)”
저도 처음엔 ‘분명히 내 파일인데 왜 못 만지지?’ 싶었어요.
특히 웹서버나 쉘 스크립트, 설정 파일을 건드릴 때는
권한 설정 하나가 안 맞아서 하루 종일 삽질(?)한 적도 있었습니다.
파일 권한(permission)은 리눅스 시스템에서 누가 어떤 파일을 어떻게 쓸 수 있는지를 제어하는 핵심적인 기능이에요.
이번 글에서는 초보자도 쉽게 이해할 수 있도록
리눅스에서의 파일 권한 구조와
chmod, chown, chgrp 명령어 사용법까지
하나하나 예제와 함께 풀어드릴게요!
📌 목차
- 리눅스 파일 권한 구조 이해
- chmod로 권한 변경하기
- 숫자(8진수)로 권한 설정하는 법
- chown, chgrp로 소유자 변경
- 자주 쓰는 권한 설정 예제
1. 리눅스 파일 권한 구조 이해
리눅스에서 파일을 ls -l 명령어로 보면 이런 식으로 출력됩니다:
-rwxr-xr-- 1 user group 1048 Aug 6 memo.txt
앞의 -rwxr-xr-- 부분이 바로 파일 권한이에요.
이걸 3단계로 나누면 이렇게 됩니다:
- 첫 글자: 파일 유형 (-는 일반 파일, d는 디렉토리)
- 다음 3자리: 소유자(owner)의 권한
- 그다음 3자리: 그룹(group)의 권한
- 마지막 3자리: 기타 사용자(other)의 권한
각 알파벳의 의미는 다음과 같아요:
- r : 읽기(read)
- w : 쓰기(write)
- x : 실행(execute)
예를 들어 -rwxr-xr-- 이라면,
- 소유자: 읽기(r), 쓰기(w), 실행(x) 모두 가능
- 그룹: 읽기(r), 실행(x) 가능
- 기타: 읽기(r)만 가능
2. chmod로 권한 변경하기
chmod는 파일의 권한을 수정하는 명령어입니다.
기본 형식은 다음과 같아요:
chmod [옵션] [권한] [파일이름]
예를 들어, 실행 권한이 없는 스크립트에 실행 권한을 주고 싶다면:
chmod +x my_script.sh
이 명령은 현재 권한에 실행 권한을 추가하는 의미예요.
주요 옵션
- +x : 실행 권한 추가
- -w : 쓰기 권한 제거
- u : 사용자(owner)
- g : 그룹
- o : 기타 사용자
- a : 전체 (all)
예:
- chmod u+x file.txt : 소유자에게 실행 권한 추가
- chmod go-w file.txt : 그룹과 기타 사용자에서 쓰기 권한 제거
3. 숫자(8진수)로 권한 설정하는 법
8진수 방식은 한 번에 전체 권한을 설정할 수 있어요.
숫자 3개를 써서 각각 owner, group, other의 권한을 지정합니다.
--- | 0 | 없음 |
--x | 1 | 실행만 |
-w- | 2 | 쓰기만 |
-wx | 3 | 쓰기 + 실행 |
r-- | 4 | 읽기만 |
r-x | 5 | 읽기 + 실행 |
rw- | 6 | 읽기 + 쓰기 |
rwx | 7 | 읽기 + 쓰기 + 실행 |
예:
- chmod 755 my_script.sh → owner는 모든 권한, 그룹과 기타는 읽기+실행
- chmod 644 hello.txt → owner는 읽기+쓰기, 그룹과 기타는 읽기만
이 방식은 배포용 파일 설정할 때 자주 씁니다.
4. chown, chgrp로 소유자 변경하기
chown은 파일의 소유자(user)나 소유 그룹(group)을 바꿀 때 사용해요.
형식은 이렇습니다:
chown [소유자]:[그룹] [파일명]
예:
- chown john memo.txt → 파일의 소유자를 ‘john’으로 변경
- chown john:staff memo.txt → 소유자: john, 그룹: staff로 변경
- chgrp developers memo.txt → 그룹만 developers로 변경
이건 보통 root 권한이 있어야 할 수 있으니, sudo를 붙여주세요.
5. 자주 쓰는 권한 설정 예제
쉘 스크립트 실행되게 만들기 | chmod +x run.sh |
디렉토리 전체 읽기·쓰기 권한 부여 | chmod -R 755 /mydir |
소유자 변경 (root에서 사용자로) | sudo chown user1 test.txt |
웹서버용 파일 권한 설정 | chmod 644 index.html |
누구도 수정 못하게 만들기 (읽기 전용) | chmod 444 config.ini |
✅ 권한 설정은 리눅스의 기본 보안이자 예의입니다
리눅스에서는 모든 게 파일 중심으로 돌아가기 때문에,
권한 설정은 그 자체로 보안이자 신뢰입니다.
스크립트가 실행이 안 될 땐 실행 권한을,
웹페이지가 열리지 않을 땐 읽기 권한을,
설정파일이 망가졌을 땐 쓰기 권한을 의심해야 해요.
처음엔 chmod, chown 명령어가 헷갈릴 수 있지만,
몇 번만 실습해보면 감이 잡힐 거예요.
자, 이제 직접 실습해보세요!
파일 하나, 폴더 하나가 내 손에 들어오는 기분이 들 거예요 😊
'리눅스의 모든 것' 카테고리의 다른 글
리눅스 사용자 추가하는 법 – 계정 생성부터 권한 설정까지 완벽 정리 (3) | 2025.08.09 |
---|---|
리눅스 쉘스크립트 예제 모음 – 실무에 바로 쓰는 7가지 스크립트 (2) | 2025.08.09 |
에러 찾기? 보안 확인? 리눅스 로그 확인법 총정리 (3) | 2025.08.08 |
리눅스 해킹 막는 법! 필수 보안 설정 5가지 정리 (1) | 2025.08.07 |
리눅스 크론탭 설정법 – 자동화 작업 스케줄러 기초부터 실전까지 (1) | 2025.08.07 |