2021-3-11 유닉스기초(3) 권한

권한

  • 유닉스는 디렉터리들도 파일처럼 취급한다. 크기도 있고, 권한 체계를 가지고 있다.

  • ls -l명령어를 입력하면 다양한 문자들이 보이는데, 첫째열이 권한문자열이다.

    • $ls -l
      total 9
      drwxrwxr-x+ 48 root  admin   1.5K  3  8 11:05 Applications
      ...
      lrwxr-xr-x@  1 root  admin    11B  9 22 12:06 etc -> private/etc
      
      
    • 권한문자열은 파일의 타입, 소유자, 그룹, 권한 4부분으로 구성. 타입은 맨첫글자가 파일의 타입이다.

    • 파일의 타입

      • d : 디렉터리
      • - : 일반파일
      • l : 심볼릭링크
      • p : 파이프
      • s : 소켓
      • b : 블록타입 특수파일
      • c : 문자타입 특수파일
  • 파일에 부여할 수 있는 권한 : 읽기, 쓰기, 실행 => 읽기 쓰기는 일반적인 내용, 실행권한은 프로그램으로 간주

  • 실행파일이 PATH에 명시된 디렉터리 중 하나인 경우 그 파일은 즉시 실행된다.

  • PATH를 통해 실행 파일들이 저장된 디렉터리를 명시하지 않으면, 시스템은 실행파일을 못찾는다.

chmod

  • chmod : change mode의 약잔

  • chmod 명령어를 이용하면 파일 및 디렉터리에 설정돈 권한을 변경할 수 있다.

  • 권한을 변경하는 2가지 방법 => 문자열 이용, 숫자이용. 문자열 방식은 주어진 권한을 일부 변경할때 사용하고 숫자방식은 권한 전체를 변경할때 주로 사용한다.

  • 문자열 방식

    • u = 사용자, g = 그룹, o = 기타사용자, a = 전부

    • + = 권한추가, - : 권한제거, = : 설정

    • r = 읽기권한, w = 쓰기권한, x = 실행권한

    • $chmod g+w test => 그룹에 쓰기 권한추가
      $chmod g-w test => 그룹에 쓰기권한 제거
      $chmod o-r test => 다른사용자 읽기권한 제거
      
  • 숫자방식 : 아홉글자 길이의 권한문자열을 세자리 숫자로 표현가능

    • $chmod 600 example => rw-------
      $chmod 755 exmple => rwxr-xr-x
      

umask

  • 권한의 기본값을 결정하는 건 파일생성마스크(file creation mask), umask

  • $umask
    022
    $touch check_umask
    -rw-r--r--   1 nhn  staff     0B  3  9 09:48 check_umask
    
    • 022의 의미는 —–x–x처럼 그룹과 기타사용자에게만 실행권한을 주는걸로 생각할 수 있는데 거꾸로다. umask는 필터의 역할을 한다. 파일 생성 마스크는 실제 파일에 설정되기를 원하는 권한 설정치의 기본값과 정확히 반대로 설정해야한다. 만약 기본값이 770으로 하고 싶으면 umask를 007로 해야한다. 위의 예제에서도 022는 755로 해석될 수 있다. 하지만 여기서도 위의 실행권한은 770이 아니라 644인것을 확인할 수 있다. 이유는 unix가 똑똑하기 때문에 디렉터리, 텍스트 파일에 대해서 내부적으로 실행권한을 박탈한거다.
Written on March 11, 2021