Jasontreks Blog

DM 보내기


Send

접근 권한 관리

리눅스는 다중 사용자 시스템으로 여러 명의 사용자들이 같은 시스템 공간에서 작업하게 된다. 하지만 다른 누군가 허락없이 내 파일을 복사하거나 내가 사용할 공간에 다른 사람이 파일을 저장하는 일이 있어선 안된다. 따라서 리눅스에서는 접근 권한 관리 기능을 통해 이러한 문제를 예방한다.

I. 파일의 속성

접근 권한은 파일에 포함된 여러 속성 중 하나다. 따라서 파일의 속성을 어떻게 확인하는지 먼저 알아야 한다.

ls -l 명령어도 특정 파일 정보를 확인하면 다음과 같이 나온다.

-rw-r--r-- 1 root root 223 11월 8 23:13 /etc/hosts
파일의 종류접근 권한하드링크 개수파일 소유자의 로그인 ID파일 소유자의 그룹 이름파일의 크기마지막 수정 날짜파일명
-rw-r--r--1rootroot22311월 8 23:13/etc/hosts
파일의 종류 속성

맨 앞 - 는 일반 파일, d는 디렉터리를 의미


II. 파일의 접근 권한

리눅스는 사용자를

  • 파일 소유자
  • 파일이 속한 그룹
  • 기타 사용자 로 구분하여 접근 권한을 적용

사용자가 파일을 생성하면 그 파일의 소유자 -> 파일이 속한 그룹은 사용자가 속한 그룹 (상위 디렉터리에 특수한 권한이 있으면 다른 그룹) 소유자도, 그룹에 속하지도 않았으면 기타 사용자

접근 권한의 종류

권한파일디렉터리
읽기파일 읽기/복사ls로 디렉터리 보기 가능
쓰기파일 수정/이동/삭제파일 생성/삭제 가능
실행파일 실행cd 사용 가능

접근 권한 표기

ls -l 명령으로 출력되는

-rw-r--r--

여기서 맨 앞 하나는 파일 종류이므로 제외하고, 순수 옵션에 대한 내용은 rw-r--r-- 부분이다. 사용자 카테고리별로 세개씩 한 묶음으로 표현한것이다.

  • rw-: 소유자
  • r--: 그룹
  • r--: 기타 사용자

각 문자의 의미는 다음과 같다.

  • r: 읽기 권한이 있음
  • w: 쓰기 권한이 있음
  • x: 실행 권한이 있음
  • -: 권한이 없음

접근 권한 변경 명령은 chmod이다.


III. 기호를 이용한 권한 변경

권한 설정은 사용자 카테고리, 연산자, 접근권한 문자의 조합으로 명령을 구성한다.

왼쪽: 사용타 카테고리

  • u: 파일 소유자
  • g: 소유자가 속한 그룹
  • o: 소유자와 그룹 이외의 기타 사용자
  • a: 전체 사용자

연산자: 부여/제거/설정

  • +: 권한 부여
  • -: 권한 제거
  • =: 권한 설정

오른쪽: 권한 옵션

  • r: 읽기
  • w: 쓰기
  • x: 실행

예시

  • u+w: 파일 소유자에게 쓰기 권한 부여
  • u-x: 파일 소유자에게 실행 권한 제거
  • u=rwx: 소유자에게 모든 권한 부여
  • +wx: 모든 사용자에게 umask에 따라 권한 부여
  • go+w: 그룹과 기타 사용자에게 쓰기 권한 부여
chmod u-w test.txt

IV. 숫자를 이용한 접근 권한 변경

r-x 와 같은 권한 값이 있다고 했을 때, 권한이 존재하는지 안하는지에 따라 0이나 1로 환산하고 그래도 이진수를 구해서 설정 조합에 딸른 고유 값을 만들어 이를 권한 설정에 쓸 수 있다.

  • rwx: 7
  • rw-: 6
  • r-x: 5
  • r--: 4
  • -wx: 3
  • -w-: 2
  • --x: 1
  • ---: 0

그리고 카테고리별로 이걸 세 묶음으로 만든어 권한이 정의되므로, 0부터 7사이 각 수를 3자리 수로 만들 수 있다. 이 수는 기호 대신 수를 이용한 권한 설정에 쓰인다.

chmod 777 test.txt

V. 기본 접근 권한 설정


VI. 특수 접근 권한 설정