예외적인 상황에 대처할 수 있는 권한이며, 기존의 권한 3+3 분류로 해결할수 없는 특수한 상황이 필요한 경우가 있기 때문에 추가된 기능이다.
권한 | 파일에 미치는 영향 | 디렉토리에 미치는 영향 |
suid | 파일을 실행한 사용자가 아니라 소유자의 권한으로 파일이 실행 | 아무 영향이 없다 |
sgid |
파일을 소유한 그룹권한으로 실행 | 디렉토리에 생성되는 파일의 그룹 소유자가 디렉토리의 그룹 소유자와 일치하게 된다. |
sticky |
영향이 없다 | 디렉토리에 대한 쓰기 권한이 있는 사용자가 자신이 소유한 파일만 제거할 수 있고 다른 사용자가 소유한 파일을 제거하거나 강제로 저장할 수 없다. |
1. suid(setuid)
소유자의 권한이 있어야만 접근할 수 있는 파일의 경우, 일시적으로 일반 사용자들에게 파일 접근 권한을 부여하기 위해 사용한다. 파일에 suid가 설정되면 다른 사용자가 파일을 실행 했을 때 해당 사용자의 권한이 아닌 파일의 소유자 권한을 갖는다.
문자 방식으로는 소유자의 허가권에 s를 추가하고, 숫자 방식으로는 가장 앞에 4를 붙여서 설정 가능하다. 정상적으로 설정이 되면 허가권의 소유자 부분에 소문자 s가 표기된다. 이때, 소유자의 파일 실행 권한(execute:x)이 주어지지 않은 상태로 suid가 설정된다면 대문자 S로 표시되며 파일을 실행해도 동작하지 않는다.
ex) 일반 사용자가 암호를 변경 할 경우
[root@Linux ~]# ls -l /bin/passwd /etc/shadow -rwsr-xr-x. 1 root root 32656 May 15 2022 /bin/passwd ----------. 1 root root 1226 Apr 27 17:19 /etc/shadow |
>> /etc/shadow는 암호가 저장되는 파일이기 때문에 root 권한 사용자만 파일에 접근 가능하도록 권한이 부여되어 있다. 하지만 일반 사용자도 암호를 변경해야 하기 때문에 /bin/passwd 파일에 suid를 설정하여 passwd 파일을 실행시키면 일시적으로 일반 사용자도 root 권한으로 shadow 파일을 수정할 수 있도록 한다.
2. sgid(setgid)
소유그룹의 권한이 있어야만 실행을 할 수 있는 파일의 경우, 일시적으로 일반 사용자들에게 파일 접근 권한을 부여하기 위해 사용한다.
디렉토리에 설정하면 해당 디렉토리에 파일을 생성할 때 파일들의 소유그룹이 디렉토리의 소유 그룹과 동일하게 생성된다. 하나의 디렉토리를 두고 여러 사용자가 공동 작업하기 편하다.
-> A그룹의 디렉토리에 B그룹에 속한사람이 파일을 만들면 B그룹이 만들 파일에 그룹 소유권은 A그룹이 가지고 있다.
그룹 허가권g에 s를 추가하거나, 숫자방식으로 할경우 앞에 2 붙여준다.
실행 권한인 x가 원래 없는 곳에 특수 권한을 주게 되면 소문자가 아닌 대문자 S로 표현된다.
3. Sticky bit
sticky-bit가 설정된 디렉토리에 파일을 생성하면 해당 파일은 생성한 사람의 소유가 되며, 오직 소유자와 root에게만 해당 파일에 대한 삭제 및 변경의 권한이 있다.
공유디렉토리로 사용하고자 할 때 쓰인다.
스티키비트 추가하기위해 문자방식인경우 t를 사용하고 숫자방식인경우 1 사용.
-> 디렉토리에만 설정 가능
/etc/tmp 디렉토리가 대표적인 sticky 비트를 가진 폴더이다.
디렉토리에 쓰기 권한이 없을때 sticky권한을 주면 t가 아닌 T로 표현
drw-r-Sr-T. 2 root wheel 6 Apr 27 14:58 sticky |
중복해서 설정 가능
[root@Linux setgid]# chmod 3644 sticky/ #2+1로 sgid+sticky 권한을 준다. [root@Linux setgid]# ll total drw-r-Sr-T. 2 root wheel 6 Apr 27 14:58 sticky |
중복으로 특수 권한을 줄 경우 따로 따로 입력하는것을 추천한다.
특수 권한 제거하는 법 (00)
[root@Linux setgid]# chmod 00755 sticky/ [root@Linux setgid]# ll total 0 drwxr-xr-x. 2 root wheel 6 Apr 27 14:58 sticky |
'리눅스-기본 개념' 카테고리의 다른 글
Authentication / Authorization 차이점 (0) | 2023.09.01 |
---|---|
프로세스 제어 (0) | 2023.08.31 |
Linux 파일 시스템 권한 (3) | 2023.08.31 |
systemd (1) | 2023.08.31 |
프로세스 (0) | 2023.08.31 |