728x90

개요

리눅스는 다중 사용자 시스템으로 설계되었습니다. 여러 사용자가 동시에 시스템을 사용하는 환경에서는 파일과 데이터의 안전한 보호가 매우 중요합니다. 이를 위해 리눅스는 파일 접근 권한(File Permission) 시스템을 도입했습니다.

 

본 글에서는 리눅스의 파일 접근 권한(File Permission) 시스템에 대해서 정리하고자 합니다.

 

파일 접근 권한의 기본 구조

리눅스에서는 모든 파일에 대해 세 가지 범주의 사용자를 구분하여 서로 다른 접근 권한을 부여할 수 있습니다.

 

1. 소유자 (Owner)

  • 파일을 소유한 사용자

2. 그룹 (Group)

  • 파일에 지정된 그룹에 속한 사용자들

3. 기타 사용자 (Others)

  • 소유자나 그룹에 속하지 않은 모든 사용자

권한의 종류

각 범주의 사용자에 대해 다음 세 가지 권한을 설정할 수 있습니다.

  1. 읽기 권한 (r)
  2. 쓰기 권한 (w)
  3. 실행 권한 (x)

파일에서의 권한 의미

  • 읽기(r): 파일의 내용을 읽을 수 있음
  • 쓰기(w): 파일의 내용을 수정할 수 있음
  • 실행(x): 파일을 실행할 수 있음

디렉토리에서의 권한 의미

  • 읽기(r): 디렉토리 내용을 볼 수 있음
  • 쓰기(w): 디렉토리 내 파일을 생성/삭제할 수 있음
  • 실행(x): 디렉토리에 접근할 수 있음

접근 권한 8진수 표기법

리눅스는 권한을 8진수로 표현할 수 있습니다.

# 파일 생성
$ touch test.txt

# 소유자:rwx(7), 그룹:r-x(5), 기타사용자:r--(4) 권한 설정
$ chmod 754 test.txt
$ ls -l test.txt
-rwxr-xr-- 1 user group 0 Feb 13 10:00 test.txt

# 소유자:rw-(6), 그룹:r--(4), 기타사용자:r--(4) 권한 설정
$ chmod 644 test.txt
$ ls -l test.txt
-rw-r--r-- 1 user group 0 Feb 13 10:00 test.txt
  • 읽기(r) = 4
  • 쓰기(w) = 2
  • 실행(x) = 1

권한 변경

chmod 명령어 : 권한 변경

1. 숫자를 사용한 방법

chmod 755 file  # rwxr-xr-x
chmod 644 file  # rw-r--r--
chmod 700 file  # rwx------

 

2. 문자를 사용한 방법

chmod u+x file  # 소유자에게 실행 권한 추가
chmod g-w file  # 그룹의 쓰기 권한 제거
chmod o+r file  # 기타 사용자에게 읽기 권한 추가
chmod a+x file  # 모든 사용자에게 실행 권한 추가
  • 사용자 지정 문자
    • u : user(소유자)
    • g : group(그룹)
    • o : others(기타 사용자)
    • a : all(모든 사용자)
  • 연산자
    • + : 권한 추가
    • - : 권한 제거
    • = : 권한 설정
  • 권한 문자
    • r : 읽기 권한
    • w : 쓰기 권한
    • x : 실행 권한

chown 명령어 : 소유자 or 그룹 변경

chown user:group file  # 소유자와 그룹 모두 변경
chown user file       # 소유자만 변경
chown :group file     # 그룹만 변경

 

권한 설정 시 주의사항

  1. 보안을 위한 권한 설정
    • 설정 파일: 600 또는 640
    • 실행 파일: 755
    • 일반 문서: 644
    • 중요 데이터: 600
  2. 일반적인 실수 피하기
    • 777 권한 사용 자제 (모든 사용자에게 모든 권한 부여)
    • 홈 디렉토리 권한 관리 (700 또는 750 권장)
    • 로그 파일 권한 관리 (644 또는 640 권장)