프로그래밍/Unix

유닉스 접근 권한 변경

미냐님 2020. 3. 23. 19:40
728x90

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

 

chmod 명령

  • 파일의 사용 권한 변경
  • 형식 : chmod [옵션] 권한모드 파일/디렉토리명
  • 옵션
    • -R : 하위 디렉토리까지 모두 변경
  • 두 가지 동작 모드
    • 기호 모드 : 접근 권한을 변경하기 위해 문자와 기호를 이용해 권한을 표시
    • 숫자 모드 : 접근 권한을 변경하기 위해 8진수를 사용

 

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

  • 기호 모드에서는 카테고리와 권한을 모두 문자로 표현
  • 기호 모드는 세 가지 항목으로 구성

  • 사용자 카테고리 : 소유자, 그룹, 기타 사용자를 나타내는 문자로 표기
  • 연산자 : 권한 부여나 권한 제거를 나타내는 기호로 표기
  • 권한 : 읽기, 쓰기, 실행을 나타내는 문자를 사용

권한 변경의 예

  • u+w : 소유자(u)에게 쓰기(w) 권한 설정(+)
  • u-x : 소유자(u)의 실행(x) 권한 제거(-)
  • g+w : 그룹(g)에게 쓰기(w) 권한 설정(+)
  • o-r : 기타 사용자(o)의 읽기(r) 권한 제거(-)
  • g+wx : 그룹(g)에게 쓰기(w)와 실행(x) 권한 설정(+)
  • +wx : 모든 사용자에게 쓰기(w)와 실행(x) 권한 설정(+)
  • a+rwx : 모든 사용자(a)에게 읽기(r), 쓰기(w), 실행(x) 권한 설정(+)
  • u=rwx : 소유자(u)에게 읽기(r), 쓰기(w), 실행(x) 권한 설정(=)
  • go+w : 그룹(g)과 기타 사용자(o)에게 쓰기(w) 권한 설정(+)
  • u+x, go+w : 소유자(u)에게 실행(x) 권한을 부여하고(+) 그룹(g)과 기타 사용자(o)에게 쓰기(w) 권한 설정(+)
  • text라는 파일의 그룹에게 쓰기 권한 추가 (g+w)
$ ls –l text
-rw-r--r-- 1 ksshin ksshin 221 6월 5 22:12 text
$ chmod g+w text
$ ls –l text
-rw-rw-r-- 1 ksshin ksshin 221 6월 5 22:12 text
$
  • 그룹에 대한 쓰기 권한 제거 (g-w)
$ chmod g-w text
$ ls –l text
-rw-r--r-- 1 ksshin ksshin 221 6월 5 22:12 text
$
  • 그룹과 기타 사용자에게 쓰기 권한 부여 (go+w)
$ chmod go+w text
$ ls –l text
-rw-rw-rw- 1 ksshin ksshin 221 6월 5 22:12 text
$
  • 사용자와 그룹의 권한을 같게 하기 (o=g)
$ chmod o=g text
$
  • 모두에게 실행 권한 부여 (a+x)
$ chmod a+x text
$ ls –l text
-rwxrwxrwx 1 ksshin ksshin 221 6월 5 22:12 text
$

 

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

 

기호 모드와 숫자 모드의 비교

  • 소유자나 그룹, 기타 사용자별로 특정 권한을 부여하거나 제거할 때는 기호 모드가 편리
  • 전체적으로 권한을 조정할 때는 문자의 조합이 복잡해짐
  • 숫자 모드로 사용하면, 소유자, 그룹, 기타 사용자의 권한을 한번에 원하는대로 변경할 수 있어 편리함

 

8진수로 환산하기

  • 숫자 모드에서는 카테고리와 권한을 모두 숫자로 표현

  • 권한 묶음(rwx)을 8진수로 표현
    • 읽기, 쓰기, 실행 권한 각각에 대해 권한 있으면 1, 없으면 0으로 환산
    • 각 자리수별로 8진수로 환산 후 세 숫자의 합을 계산

 

접근 권한 표기와 8진수 숫자의 대응 관계

  • 7, 6, 5, 4, 0의 형태가 자주 사용되고, 1, 2, 3은 거의 사용되지 않음
  • 소유자 권한, 그룹 권한, 기타 사용자 권한을 각각 8진수로 계산하면 전체 접근 권한을 나타내는 숫자 세 개가 나옴

  • 숫자 모드로 표현한 접근 권한의 대표적인 형태
    • chmod 명령의 숫자 모드에서 사용하는 형태

숫자 모드를 이용한 접근 권한 변경

  • 8진수 3자리를 사용
  • 숫자의 각 위치가 사용자 카테고리를 표시하므로, 사용자 카테고리를 따로 지정할 필요 없음

728x90