파일의 권한은 일반적으로 사용자권한, 그룹권한, 아더권한이 있고, 각각의 권한에 대해 읽기권한(r), 쓰기권한(w),
그리고 실행권한(x)가 있다. 근데 사용자권한, 그룹권한, 아더권한 외에도 특수권한 이라는게 있다. 특수 권한을 이용
하면 다른 계정에게 읽기,쓰기,실행 권한을 줄 수 있으며, 다른 계정(A)에서 만든 파일을 내 계정(B)에서 실행하는
동안 A의 권한을 얻어 해당 파일을 읽거나 쓰거나 실행하는 것이 가능해진다 (SetUID와 SetGID에 해당).
특수 권한에는 SetUID, SetGID, Sticky Bit가 있다.
1. SetUID
사용자의 권한이 있어야만 실행을 할 수 있는 파일의 경우, 그 권한을 일시적으로 파일을 실행하는 일반 사용자들에게
부여하기 위해 사용 한다.
SetUID가 설정된 파일을 실행하면 해당 파일을 실행하는 도중에는 파일의 사용자 권한을 획득하며, 파일의 실행을
마친 뒤에는 다시 자신의 권한으로 돌아온다.
SetUID는 4xxx로 설정한다. (100에 해당. xxx는 기존의 사용자권한, 그룹권한, 아더권한을 의미)
SetUID 설정 시 사용자 권한내의 실행 권한 자리에 x가 아닌 s가 오게 된다.
2. SetGID
그룹의 권한이 있어야만 실행을 할 수 있는 파일의 경우, 그 권한을 일시적으로 파일을 실행하는 일반 사용자들에게
부여하기 위해 사용 한다.
SetGID가 설정된 파일을 실행하면 해당 파일을 실행하는 도중에는 파일의 그룹 권한을 획득하며, 파일의 실행을
마친 뒤에는 다시 자신의 권한으로 돌아온다.
SetGID는 2xxx로 설정한다. (010에 해당. xxx는 기존의 사용자권한, 그룹권한, 아더권한을 의미)
SetGID 설정 시 그룹 권한내의 실행 권한 자리에 x가 아닌 s가 오게 된다.
3. Sticky Bit
Sticky Bit가 설정된 디렉토리에 파일을 생성하면 해당 파일은 생성한 사람의 소유가 되며, 오직 소유자와 root에게만
해당 파일에 대한 삭제 및 변경의 권한이 있다. 공유디렉토리로 사용하고자 할 때 쓰인다.
Sticky Bit는 1xxx로 설정한다. (001에 해당. xxx는 기존의 사용자권한, 그룹권한, 아더권한을 의미)
Sticky Bit 설정 시 아더 권한내의 실행 권한 자리에 x가 아닌 t가 오게 된다.
-----
참고로 SetUID, SetGID, Sticky Bit는 해당 자리의 퍼미션에 실행퍼미션이 있어야만 적용이 된다.
만약 특수퍼미션이 대문자로 표기될 경우 이는 특수퍼미션이 설정은 되어있지만 일반퍼미션 자리에 실행퍼미션이
설정 되어 있지 않기 때문임.
'Linux > 공개글' 카테고리의 다른 글
버퍼 오버플로우 공격 환경 구성 (0) | 2015.02.26 |
---|---|
랜덤 스택 사용을 disable 하는법 (0) | 2015.02.22 |
gdb 자주 쓰이는 명령어들 정리 (0) | 2015.01.10 |
Couldn't get registers: Operation not permitted (0) | 2015.01.10 |
find -perm mode 옵션에 대해서 (0) | 2015.01.05 |