linux - 파일&디렉토리 권한 변경

리눅스 시스템에서는 파일과 디렉토리의 접근 권한이 매우 중요합니다. 시스템의 안전성과 보안을 위해, 누가 어떤 파일에 접근하고 어떤 작업을 할 수 있는지를 세밀하게 조절할 수 있어야 하죠. 이를 위해 chmod 라는 명령어를 사용합니다.


✏️chmod란?

chmod는 changemode의 약자로, 리눅스에서 파일이나 디렉토리의 권한(permission)을 변경하는 명령어입니다.


🛠️리눅스의 파일 권한 구조

리눅스에서 모든 파일은 다음과 같은 세가지 사용자 그룹에 대해 권한을 가집니다.

  1. 소유자 (owner)
  2. 그룹 (group)
  3. 기타 사용자 (others)

각 그룹은 다음과 같은 권한을 가질 수 있습니다.

권한 의미 기호
읽기 파일 내용을 읽을 수 있음 r
쓰기 파일을 수정할 수 있음 w
실행 파일을 실행할 수 있음 (스크립트, 바이너리 등) x

 

예를 들어, 다음과 같은 권한 문자열이 있다면

- r - - r - x r w x
--r r-x rwx
읽기 가능 읽기 가능 읽기 가능
- - 쓰기 가능
- 실행 가능 실행 가능

🔍chmod 기본 사용법

chmod [옵션] 권한 파일이름

 

기호 방식 (symbolic mode)

기호 의미
u 사용자 (user = owner)
g 그룹 (group)
o 기타 (others)
a 모두 (all)
+ 권한 추가
- 권한 제거
= 권한 설정

 

chmod u+x script.sh

chmod g-w file.txt   # 그룹의 쓰기 권한 제거
chmod o=r file.txt   # 기타 사용자 권한을 읽기로만 설정
chmod a+x run.sh     # 모든 사용자에게 실행 권한 추가

 

 숫자 방식 (octal mode)

각 권한을 숫자로 표현한 방식입니다. 저는 이 방식이 더편했습니다.

표기 권한값 의미
0 --- 아무 권한 없다.
1 --x 실행 권한만 있다.
2 -w- 쓰기 권한만 있다.
3 -wx 쓰기와 실행권한만 있다.
4 r-- 읽기 권한만 있다.
5 r-x 읽기와 실행 권한만 있다.
6 rw- 읽기와 쓰기 권한만 있다.
7 rwx 읽기, 쓰기, 실행 권한이 모두 있다.

 

chmod 457 ab.txt

 

 


⛔주의사항

  • 디렉토리에 실행(x) 권한이 없으면 그 디렉토리 안으로 이동하거나 파일 목록을 보는 데 제약이 생깁니다.
  • 너무 과한 권한 (예: chmod 777) 은 보안 위험이 있습니다. 테스트 환경이 아니라면 주의하세요
  • 파일 소유자만 권한을 변경할 수 있으며, 루트 사용자는 모든 권한을 변경할 수 있습니다.