리눅스에서 권한(Permission)은 너무나도 익숙한 개념이다. 777, 711, 644, drwxrwxrwx 등 리눅스를 겉핥기식으로 아는 사람들이라면 일반적으로 소유자(User) 권한, 소유그룹(Group) 권한, 그 외(Other) 권한 3가지, 그리고 쓰기(Write), 읽기(Read), 실행(Execute) 3가지로 인식하는 경우가 많다.
하지만 실제로 리눅스에서 적용되는 권한은 4가지이다. 위 3+3 분류로 해결할수 없는 특수한 상황이 필요한 경우가 있기 때문이다. 실제로 권한을 조회하다 보면 rwx가 아닌 rwS 같은 특이한 권한이 보이기도 하고, chmod나 몇몇 권한 세팅 예제에서 1755, 0644 등 4자리로 표현되는 권한을 보기도 한다. 모두 특수권한이 적용되는 경우이다.
특수권한은 3가지가 있다. 바로 Set-UID, Set-GID, Sticky-Bit이다.
많이 쓰이나? 꼭 알아야되나? 라고 생각 할 수도 있지만, 필요에 의해 따로 설정해서 쓰지 않더라도 리눅스 기본 시스템이나 소프트웨어에서 불가피하게 사용되고 있는 곳이 많고, 여러가지 해킹 기법 및 보안사고의 근원이므로 상식적인 차원에서도 무조건 알아두어야 한다.
Set-UID
- 실행하는 동안 해당 파일의 소유자 권한으로 인식한다.
- 일반적으로 실행 파일에 사용된다.
- 소유자 권한 부분의 x 자리에 s 로 표기 된다.
- 실행 권한이 없을 경우 대문자 S 로 표시된다.
Set-GID
- 실행하는 동안 해당 파일의 소유자그룹 권한으로 인식한다.
- 일반적으로 디렉터리에 설정된다.
- 사용자가 파일이나 디렉터리를 생성하면 사용자가 속한 그룹에 상관없이 디렉터리 소유 그룹으로 만들어진다.
- 그룹 권한 부분의 x 자리에 s 로 표기 된다.
- 실행 권한이 없을 경우 대문자 S 로 표시된다.
Sticky-Bit
- 일반 사용자들이 디렉터리에서 파일 및 디렉터리 생성이 가능하다.
- 일반 사용자들은 자신이 생성한 것 이외에는 수정 및 삭제가 불가능하다.
- 디렉터리에만 적용된다.
- 시스템 기본 폴더인 /tmp 디렉터리에 설정되어 있다.
- 설정하면 other 계층 권한 부분의 x 자리에 t 로 표기되며 실행권한이 없는 경우 대문자 T 로 표기된다.
특수 권한의 설정
우리에게 익숙한 chmod 를 사용한다.
문자모드인 경우에는 Set-UID 와 Set-GID 는 s 를 사용하고, Sticky-bit 는 t 를 사용한다.
ex
chmod rwSrwxrwx
chmod rwxrwsrwx
chmod rwsrwsrwt
등
숫자모드인 경우에는 천의 자리가 사용되고 Set-UID 는 4, Set-GID 는 2, Sticky-bit 는 1 의 값을 갖는다.
ex
chmod 1744
'IT 실무 > 서버 관리' 카테고리의 다른 글
리눅스 주요 명령어 및 설정파일 매뉴얼 모음 (0) | 2018.05.16 |
---|---|
리눅스 whoami와 who am i, 그리고 users와 id (0) | 2018.04.22 |
리눅스마스터 1급 2차(실기) 출제 분석 (0) | 2018.04.09 |
리눅스에서 CPU와 메모리 정보를 확인(/proc/cpuinfo, /proc/meminfo) (0) | 2018.04.09 |
[리눅스마스터] FTP 주요 명령어 (0) | 2018.03.25 |
댓글