Computer Science/유닉스프로그래밍

[유닉스 이론과 실습] ch06. 파일 접근 권한 관리하기

계속지나가기 2020. 10. 19. 13:59
반응형

본 강의 노트는 한빛 미디어의 <유닉스 이론과 실습> 책을 기반으로 하고 있습니다)

ch06. 파일 접근 권한 관리하기

학습목표

  • 파일의 속성과 접근 권한의 개념을 이해한다
  • 접근 권한을 변경하는 방법을 익힌다
  • 접근 권한을 상속하고 초기에 설정하는 방법을 익힌다

목차

  1. 파일의 속성
  2. 파일의 접근 권한
  3. 기호를 이용한 파일 접근 권한 변경
  4. 숫자를 이용한 파일 접근 권한 변경
  5. 기본 접근 권한의 설정

01. 파일의 속성

  1. 다중 사용자 시스템의 특징
  • 여러 사람이 하나의 시스템 사용
  • 다른 사람이 내 파일을 읽거나 수정, 삭제 할 수 없도록 보안 필요
  • 다른 사용자의 무단 접근으로부터 자신의 파일을 보호하는 기능으로 파일에 접근 권한을 부여하여 권한 만큼만 파일을 사용
  1. 파일의 속성
  • 유닉스에서 파일을 관리하기 위해 저장하는 정보들
  • ls-l 명령으로 파일 속성을 확인할 수 있음

ls-l 명령

번호

 

-

파일 종류 (- : 일반파일, d: 디렉토리)

rw-r--r--

파일을 읽고,쓰고,실행할 수 있는 권한 표시

1

물리적 연결 개수

user1

파일 소유자의 사용자 명

staff

파일 소유자의 그룹명

183

파일 크기 (바이트 단위)

May  9  23:11

파일이 마지막으로 변경된 시간

first.dat

파일명

파일 종류 표시

문자

파일 유형

-

일반 (정규) 파일

d

디렉토리 파일

b

블럭 단위로 읽고 쓰는 블럭 장치 특수 파일

c

문자 단위로 읽고 쓰는 문자 장치 특수 파일

l

기호적 링크

p

파이프

s

소켓

  • 관련 명령 : file 파일명

파일이 속한 그룹

  • 관련 명령 : groups 사용자명
  • 사용자명 지정 : 인자로 지정한 사용자가 속한 그룹 이름 출력
  • 인자가 없을 경우 자신이 속한 그룹이름 출력

02. 파일의 접근 권한

  • 파일을 읽고, 쓰고 실행할 수 잇는 권한
  • 다중 사용자 시스템의 가장 기본적인 보안 기능

유닉스의 사용자 카테고리

  1. 소유자
  • 일반적으로 파일을 생성한 사용자, 명령을 통해 변경할 수도 있음
  1. 그룹
  • 파일과 동일한 그룹에 속한 사용자들
  • 파일이 속한 그룹?
    • 일반적으로 파일을 생성한 사용자의 기본 그룹
    • 명령을 이용하여 변셩 가능
  1. 기타 사용자(Others)
  • 소유자나 그룹 카테고리에 속하지 않은 모든 사용자들

접근 권한은 카테고리 별로 다르게 부여

접근 권한의 종류

기본권한

  • 읽기, 쓰기, 실행
  • 파일의 종류에 따라 의미가 다름

모드

일반 파일

디렉토리 파일

특수 파일

읽기

( r )

파일 내용을 읽거나 복사할 수 있다

ls 명령으로 디렉토리 목록을 읽을 수 있다(ls 명령의 옵션은 실행권한이 있어야 함)

read() 를 사용하여 파일을 읽을 수 있다

쓰기

( w )

파일을 수정/이동/삭제 시킬 수 있다

(디렉토리에 쓰기권한이 있어야 함)

디렉토리내에 파일을 생성,삭제할 수 있다

write() 를 사용하여 파일에 쓸 수 있다

실행

( x )

파일을 실행 시킬 수 있다(실행 가능한 파일의 경우)

cd 명령을 이용하여 디렉토리로 이동할 수 있다.

파일을 디렉토리로 이동하거나 복사할 수 있다.

아무런 의미가 없다

접근 권한 표기 방법

  • 문자의 의미
    • r : 읽기 허가
    • w : 쓰기 허가
    • x : 실행 허가
    • - : 허가 취소

사용 권한

 

rwxr-xr-x

소유자는 읽기/쓰기/실행 권한을 모두 가지고 그룹과 기타사용자는 읽기와 실행권한만 가짐

r-xr-xr-x

소유자, 그룹, 기타사용자 모두 읽기와 실행권한만 가짐

rw-------

소유자만 읽기/쓰기 권한을 갖고 그룹과 기타사용자는 아무 권한도 없음

rw-rw-rw-

소유자와 그룹, 기타사용자 모두 읽기와 쓰기 권한을 가지고 있음

rwxrwxrwx

소유자, 그룹, 기타사용자 모두 읽기/쓰기/실행 권한을 가지고 있음

rwx------

소유자만 읽기/쓰기/실행권한을 가지고 있고 그룹과 기타사용자는 아무 권한도 없음

03. 기호를 이용한 파일 접근 권한 변경

  • chmod [option] mode file_name
  1. 자신이 소유한 파일의 사용 권한을 변경
  2. 옵션
  • -R: 하위 디렉토리까지 모두 변경
  1. 모드
  • 변경할 사용 권한 표시
  • 종류 : 기호 모드, 8진수 모드

기호 모드를 이용한 권한 변경

  • Chmod <기호모드 : 사용자 카테고리 | 연산자 | 권한 > 파일명
  1. 사용자 카테고리
  • u(user), g(group), o(others), a(anyone)
  1. 연산자 기호
  • +(add permision) , -(delete permision), =(add permision to specific users)
  1. 권한 기호
  • r(allow to read), w(allow to write), x(allow to execute)

04. 숫자를 이용한 파일 접근 권한 변경

숫자 모드

  • 숫자를 이용하여 접근 권한 표현
  • 모든 카테고리의 접근 권한을 동시에 조정 시 기호모드보다 편리
  • 각 카테고리 별로 접근 권한을 하나의 8진수로 표현
  • 3개의 8진수를 사용하여 전체 접근 권한 표시

표시 방법

  1. 사용권한
    • rwx r-x r-x
  2. 2진수로 대체
    • 111 101 101
  3. 8진수로 변환
    • 7 5 5

사용 권한의 8진수 변환 과정

  1. 사용권한
  2. 2진수로 대체
  3. 2진수로 계산
  4. 계산 결과 합산
  5. 8진수 권한 값

접근 권한과 8진수의 대응관계

  • table을 참고

사용 권한

8진수 모드값

rwxrwxrwx

777

rwxr-xr-x

755

rw-rw-rw-

666

r-xr-xr-x

555

rw-r--r--

644

rwx------

700

rw-r-----

740

r--------

400

---------

000

05. 기본 접근 권한의 설정

: 유닉스에서 새로운 파일이나 디렉토리를 만들때 부여되는 접근 권한

  • umask [mask_value]
  • 기본 접근 권한을 출력하거나 변경
  • 마스크 값
    • 파일이나 디렉토리 생성 시 부여하지 않을 권한 지정
    • 이 값을 지정하면 지정한 마스크를 이용하여 기본 접근권한 지정
    • 지정하지 않으면 현재 설정된 마스크 값 출력

마스크

  • 가리다
  • 사용 권한에서 허용하지 않을 값을 지정
  • 마스크를 이용한 접근 권한 생성
    • 기본 사용 권한 XOR 마스크
  • 대표적 마스크 값

마스크 값

실행할 수 없는

일반 파일

실행할 수 있는

일반 파일

디렉

토리

  

022

644

755

755

소유자는 모두 할 수 있고 그 이외의 사용자는 쓰기 금지

077

600

700

700

소유자 이외는 파일에 접근 금지

027

640

750

750

그룹은 읽기와 실행만 가능, 기타 사용자는 파일에 접근 금지

반응형