Linux/리눅스 시스템 관리

01-02-02 파일 시스템 관리_특수 권한

바우네 2022. 2. 13. 08:00
반응형

특수 권한

  1. 특수 권한의 개요
    • 파일의 소유자 허가권, 그룹 허가권, 다른 사용자 허가권, 사용자 소유권, 그룹 소유권 그리고 읽기, 쓰기, 실행 권한만으로는 시스템을 운영할 때 한계가 있다. 이를 위해 Set-UID 권한 비트, Set-GID 권한 비트, 스티키 비트라는 특수 권한이 존재한다.
  2. Set-UID 권한 비트(Set User ID bit)
    • 파일에 Set-UID 비트가 설정되면 사용자가 파일을 실행했을 때 해당 사용자의 권한이 아닌 파일의 소유자 권한으로 실행된다.
    • 대표적인 예로 /usr/bin/passwd 프로그램 파일은 root만이 읽기 가능한 /etc/shadow 파일에 접근할 수 있도록 설정되어 있다. 이 설정대로라면 일반 사용자는 passwd 프로그램을 사용하지 못한다. 그러나 passwd는 일반 사용자도 패스워드 변경을 위해 필요한 프로그램이기 때문에 Set-UID 비트를 설정하여 passwd를 실행할 때 임시로 루트의 권한으로 실행할 수 있도록 한다. 'ls -l'로 /usr/bin/passwd 파일을 확인해 보면 소유자 허가권에 'x' 대신 's'로 표기되어 있어 Set-UID 비트가 설정되었음을 알 수 있다.
    • 만약 실행 권한이 없는 파일에 Set-UID 비트를 설정하면 'S'로 표기된다.
    • Set-UID 비트를 설정하기 위해서는 소유자 허가권(u)에 's'를 추가(+)하거나 문자 또는 숫자 방식으로 설정할 수 있다. 숫자 방식으로 설정할 때는 가장 앞에 '4'를 붙인다.
  3. Set-GID 권한 비트(Set Group ID bit)
    • 파일이나 디렉터리에 Set-GID 비트를 설정할 수 있다. 파일에 Set-GID를 지정하면 Set-UID와 비슷한 의미로 사용자의 그룹이 아닌 해당 파일의 그룹으로 실행한다.
    • 디렉터리에 Set-GID를 지정하면 하나의 디렉터리를 두고 여러 사용자가 공동 작업하기가 편리하다. 만약 Set-GID를 지정하지 않으면 여러 사용자가 공용 디렉터리에 파일이나 디레터리를 생성할 경우 각 사용자의 소유자와 그룹을 따르기 때문에 공동작업을 하기 어렵다. 그러나 공용 디렉터리에 Set-GID를 지정하면 해당 디렉터리에 파일이나 디렉터리를 생성하더라도 공용 디렉터리의 그룹으로 생성되기 때문에 공동작업이 가능해진다.
    • Set-GID 비트를 설정하기 위해서는 그룹 허가권(g)에 's'룰 추가(+)하거나 문자 또는 숫자 방식으로 설정할 수 있다. 숫자 방식으로 설정할 때는 가장 앞에 '2'를 붙여준다. Set-GID도 Set-UID와 마찬가지로 실행 권한이 없는 파일이나 디렉터리에 설정할 경우 'S'로 표기된다.
  4. 스티키 비트(sticky bit)
    • 스티키 비트는 디렉터리에만 적용 가능하다. 모든 사용자가 모두 접근 가능하도록 특정 디렉터리에 모든 권한(rwxrwxrwx)을 지정할 수 있다. 하지만 이런 경우 사용자 누구라도 해당 디렉터리를 지울 수 있기 때문에 보안 결점이 발생한다. 이때 누구나 접근 가능한 디렉터리이지만 삭제는 원하지 않을 때 스티키 비트를 사용한다. 스티키 비스를 디렉터리에 지정하면 누구나 그 안에 디렉터리나 파일을 생성할 수는 있지만, 삭제는 오직 그 파일을 소유한 사용자만 가능하다
    • 스티키 비트의 가장 대표적인 예로 /tmp 폴더가 있다. 권한이 모든 사용자, 그룹, 다른 사용자에게 읽기, 쓰기, 실행 권한이 있지만 스티키 비트 't'가 설정되어 있다. 따라서 /tmp 디렉터리 내의 디렉터리나 파일은 각 파일이나 디렉터리의 소유자만 삭제할 수 있고 다른 사용자는 삭제할 수 없다.
    • 스티키 비트를 추가하기 위해서 문자 방식인 경우 't'를 사용하고 숫자 방식인 경우 '1'을 사용한다.
반응형