본문 바로가기
리눅스의 모든 것

리눅스 파일 권한 변경하는 법 – 읽기/쓰기/실행권한 쉽게 정리

by 운따돈 2025. 8. 8.

리눅스를 사용하다 보면 어느 순간 이런 메시지를 만나게 됩니다.
“Permission denied (권한이 없습니다)”

 

저도 처음엔 ‘분명히 내 파일인데 왜 못 만지지?’ 싶었어요.
특히 웹서버나 쉘 스크립트, 설정 파일을 건드릴 때는


권한 설정 하나가 안 맞아서 하루 종일 삽질(?)한 적도 있었습니다.

파일 권한(permission)은 리눅스 시스템에서 누가 어떤 파일을 어떻게 쓸 수 있는지를 제어하는 핵심적인 기능이에요.


이번 글에서는 초보자도 쉽게 이해할 수 있도록
리눅스에서의 파일 권한 구조와
chmod, chown, chgrp 명령어 사용법까지
하나하나 예제와 함께 풀어드릴게요!


📌 목차

  1. 리눅스 파일 권한 구조 이해
  2. chmod로 권한 변경하기
  3. 숫자(8진수)로 권한 설정하는 법
  4. chown, chgrp로 소유자 변경
  5. 자주 쓰는 권한 설정 예제

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 명령어가 헷갈릴 수 있지만,
몇 번만 실습해보면 감이 잡힐 거예요.

자, 이제 직접 실습해보세요!
파일 하나, 폴더 하나가 내 손에 들어오는 기분이 들 거예요 😊