ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Linux] 권한과 특수권한
    IT 공부방 [기본지식 정리]/리눅스 서버 2019. 5. 6. 16:33

    1. 일반 권한

     

    1) 권한 표현 방법    

    ls -al 명령으로 보면 알겠지만 각 파일이나 디렉토리마다

    drwxr-xr-x  와 같은 형식을 가지는 문구가 있는 것을 볼 수 있다.

    이 부분을 상세히 보자면

     

    d rwx r-x r-x

    d : 파일 타입 부분

    rwx : 소유권자에 대한 권한 부분

    r-x : 소유그룹에 대한 권한부분

    r-x : 나머지 접근하는 모든 사용자에 대한 권한 부분

     

    이렇게 나눠 볼 수 있으며

     

    파일 타입 부분  :  d(디렉토리),  -(일반 실행 파일),  b(블럭형 장치 파일),  c(문자형 장치파일)

                            l(심볼릭 링크 파일), s(통신 소켓 파일), p(파이프 파일)

     

    소유권자 부분 : -(권한 없음),  r(읽기 권한),  w(쓰기 권한),  x(실행 권한)

                         [** 단 현재 접근한 계정이 접근한 파일의 소유권자와 일치할 경우 적용된다.]

     

    소유그룹 부분 : -(권한 없음),  r(읽기 권한),  w(쓰기 권한),  x(실행 권한)

                         [** 단 현재 접근한 계정이 접근한 파일의 소유그룹에 포함될 경우 적용된다.]

     

    나머지 사용자 부분 : -(권한 없음),  r(읽기 권한),  w(쓰기 권한),  x(실행 권한)

                               [** 위의 2가지 사항에 속하지 않는 나머지 사용자들에 대해 적용하는 부분이다.]

     

     

     

     

    2. 특수 권한

     

     

    명령어 실행 구조

    ** 알고가기)


    Symbolic 표기 방식 -> rwx rwx rwx 

    Numeric 표기 방식 -> 7 7 7                                      [이 부분에 대한 자세한 설명은 구글링~]

     

    일반권한은 rwx rwx rwx (3+3+3) 총 9bit 이다.  

          일반권한을 Numeric으로 표기하면 777 (이렇게 주며 사실상 0777인 상태라고 볼 수 있다.)

     

    특수권한은 -rwx -rwx -rwx (4+4+4) 총 12bit 이다.

          특수권한을 Numeric으로 표기하면 0777 (특수권한이 설정되지 않은 상태)

     

     

     

    1) Set Uid 

       현재 접근하는 사용자가 아니라 파일/디렉토리 소유권자가 대신 수행해준다.  (x 권한)

       일반적으로 root가 소유권자인 파일들을 일반 사용자 1회성으로 실행할 수 있게 하기 위함이다. 

                      -> 실 사용자 ID(RUID)를 가진 유효 사용자ID(EUID)가 실행하는 순간만 잠시 바뀜.

       (일반 사용자에게 대놓고 루트 관리자의 권한을 줄 수 없기 때문임)

       Symbolic 표기 방식으로는 S나 s로 표기된다.  ex) rws / rwS

       Numeric 표기 방식으로는 4000으로 표현된다. 

     

      testfile의 경우 chmod 4644 testfile로  접근권한을 주었고

      testfile2의 경우 chmod 4744 testfile2로  접근권한을 주었다. 

     

      그 결과, 

      testfile은 대문자로 표기되었고  /  testfile2는 소문자로 표기되었다. 

      이 두가지의 차이는 실행권한을 주고 안주고의 차이이다. 

      testfile의 경우 소유권자의 실행 권한을 주지 않았기 때문에 setuid를 설정하더라도 실행되지 않음

      testfile2의 경우가 제대로 된 사용 방법이다. 

     

     

    2) Set Gid

       현재 접근하는 사용자가 아니라 파일/디렉토리 소유그룹이 대신 수행해준다.  (x 권한)

       일반적으로 root가 소유그룹인 파일들을 일반 사용자 1회성으로 실행할 수 있게 하기 위함이다. 

                      -> 실 사용자 ID(RGID)를 가진 유효 그룹ID(EGID)가 실행하는 순간만 잠시 바뀜.

       (일반 사용자에게 대놓고 루트 관리자의 권한을 줄 수 없기 때문임)

       Symbolic 표기 방식으로는 S나 s로 표기된다.  ex) rws / rwS

       Numeric 표기 방식으로는 2000으로 표현된다. 

     

     

      testfile의 경우 chmod 2464 testfile로 접근권한을 주었고

      testfile2의 경우 chmod 2474 testfile2로 접근권한을 주었다. 

     

      그 결과, 

      setUid의 경우와 같이 표기되었다. (단지 소유권자 / 소유그룹 위치의 차이 뿐이었다.)

      이것 또한 기본적으로 소유그룹에 x 권한을 같이 주어야 한다. 

     

     

    3) Sticky bit

       접근하는 누구나 생성, 읽기는 가능하지만 / 수정 및 삭제는 불가능하게 한다.

       일반적으로 공용 디렉토리에 많이 사용한다. (/tmp, /network공유폴더) 

       Symbolic 표기 방식으로는 T나 t로 표기된다.  ex) rwt / rwT

       Numeric 표기 방식으로는 1000으로 표현된다. 

        testfile의 경우 chmod 1446 testfile로 접근권한을 주었고

        testfile2의 경우 chmod 1447 testfile2로 접근권한을 주었다. 

      

        그 결과, 위와 같다.

        다만 Sticky bit 같은 경우는 파일보다 디렉토리에 활용이 많이 되며

        누구나 자유롭게 이용 가능한 환경을 제공해 줄 때 사용한다. 

Designed by Tistory.