저번 포스트에서 rwx 세가지 권한을 설명했지만
특수권한이 세개가 더있다.

(1)setuid
-> 해당 파일을 실행할때 해당파일의 소유자 권한으로 실행하는 권한
-rwsr-xr-x 1 root root 118168 Dec 6 07:51 /bin/passwd
setuid 가 설정되어 있으면 해당 실행권한 부분이 s로 표시가 되어있다.
실행권한이 있는지 없는지 아는방법으로는
-rws - 실행권한이 있는경우
-rwS - 실행권한이 없는경우
이렇게 대소문자로 실행권한의 유무를 구분하는것이다.
해당 passwd 파일은 비밀번호를 변경하기 위한 목적의 실행파일이다.
즉 root라는 관리자 계정의 소유주권한으로 실행되는 실행파일이라고 해석 할 수 있다.
root가 아닌 다른 사용자가 이 파일을 실행하더라도 그 파일을 실행하는 방식은 소유주의 권한으로 실행하는게 된다는것이다. 즉 파일을 실행하는 순간 만큼은 해당 파일의 소유주가 되는것
보안상으로 특정 디렉토리에 다른 사용자가 접근해서는 안되지만 비밀번호 변경 또는 여타 다른 이유로 접근이 금지된 디렉토리에 접근하는 프로그램을 실행해야 할때 해당 프로그램이 동작하는 범위 내에서만 소유주의 권한으로 프로그램을 실행시켜 용무를 볼 수 있게 하기위해 해당 권한이 필요한것이다.
(2)setgid
-> 해당 파일을 실행할때 해당파일의 그룹 권한으로 실행하는 권한
setuid 와 같은 맥락이기에 큰 차이는 없다
-rwsr-sr 권한 유
-rwsr-Sr 권한 무
이렇게 소문자 대문자로 권한유무를 구분하는것또한 일맥상통한다.
(3)sticky bit
-> 디렉토리에 설정되는 권한으로 주로 공유 디렉토리를 설정한때 설정하는 비트다
sticky bit 가 설정되면 해당 디렉토리에는 누구나 파일을 생성할 수 있게 된다.
하지만 파일을 삭제하는건 해당 파일의 작성자만 삭제할 수 있다.
우리가 처음 배운 /tmp 디렉토리가 sticky bit 가 설정되어있는 대표적인 디렉토리다

drwxrwxrwt 13 root root 320 Jan 21 09:30
해당 tmp 디렉토리의 정보를 가져온것이다.
drwxrwxrwt
맨끝에 t라고 되어있는데 이것이 sticky bit가 설정되어있다는 의미이다.
그리고 t의 대소문자 여부에 따라 실행권한 유무가 정해지는것도 위에 두 권한과 같다.
drwxrwxrwt 유
drwxrwxrwT 무
이렇게 세가지의 특수권한이 존재하는것이고 이는 해킹에서 중요한 요소로 보인다.