이번 포스팅에서는 특수 권한에 대해 말씀드리겠습니다.
지난 Umask 관련 포스팅에서도 말씀드렸듯이 권한을 설정할 때 8진수 숫자 4자리 중 가장 앞의 숫자는 특수 권한을 설정하는 자리입니다.
권한을 8진수 숫자 3자리로 설정하면 일반 권한,
권한을 8진수 숫자 4자리로 설정하면 특수 권한까지 수정합니다.
chmod 명령어로 File의 퍼미션을 777로 설정한다면 아래 예시처럼 File의 퍼미션 값은 rwxrwxrwx가 됩니다.
[root@localhost test]# chmod 777 File ; ll | grep File -rwxrwxrwx. 1 root root 0 3월 8 23:30 File [root@localhost test]# |
그렇다면 퍼미션을 4777로 설정한다면 어떻게 될까요?
[root@localhost test]# chmod 4777 File ; ll | grep File -rwsrwxrwx. 1 root root 0 3월 8 23:30 File [root@localhost test]# |
네 바로 위 예제처럼 퍼미션의 소유자 권한 값에x 대신 “s”가 생겼습니다. (아래 표 참고)
UID | GID | OTHER | |
파일 유형 (종류) |
소유주 권한 | 그룹 권한 | 기타 사용자 권한 |
-, d, l, ... | rwx => rws | rwx | rwx |
이처럼 8진수 숫자 4자리 중 가장 앞자리의 숫자가 “4”라면 UID 값이 바뀌는 것을 확인할 수 있습니다.
GID와 OTHER는 어떤 숫자가 들어가야 바뀌는지 아래 표로 먼저 간단히 보여드리겠습니다.
UID | GID | OTHER | |
파일 유형 (종류) |
소유주 권한 | 그룹 권한 | 기타 사용자 권한 |
-, d, l, ... | rwx => rws | rwx => rws | rwx => rwt |
특수 권한 넘버릭 | 4000 | 2000 | 1000 |
특수 권한 명령어 | SetUID | SetGID | Sticky bit |
앞자리 숫자가 “4”라면 UID, “2”라면 GID, “1”이라면 OTHER의 특수 권한을 수정합니다.
또한 UID, GID는 실행 권한인 x 대신 “s”로, OTHER는 “t”로 바뀝니다.
UID의 특수 권한을 수정하는 명령어는 SetUID,
GID의 특수 권한을 수정하는 명령어는 SetGID,
OTHER의 특수 권한을 수정하는 명령어는 Sticky bit입니다.
따라서 특수 권한 명령어에는 SetUID, SetGID, Sticky bit이 있는 것을 알 수 있습니다.
[root@localhost test]# chmod 4777 File ; ll | grep File -rwsrwxrwx. 1 root root 0 3월 8 23:30 File [root@localhost test]# |
기존 권한에 실행 권한이 존재한다면 소문자 s(t), 실행 권한이 존재하지 않는다면 대문자 S(T)로 구분됩니다.
[실행 시 소유자(UID) 권한 취득]
==SetUID== +4000
rwsrwxrwx 4777 => UID에 실행 권한 존재, 특수 권한 부여 시 s
=> rwxrwxrwx => +4000 => rwsrwxrwx
rwSrwxrwx 4677 => UID에 실행 권한 미존재, 특수 권한 부여 시 S
=> rw-rwxrwx => +4000 => rwSrwxrwx
[실행 시 그룹(GID) 권한 취득]
==SetGID== +2000
rwxrwsrwx 2777 => GID에 실행 권한 존재, 특수 권한 부여 시 s
=> rwxrwxrwx => +2000 => rwxrwsrwx
rwxrwSrwx 2767 => GID에 실행 권한 미존재, 특수 권한 부여 시 S
=> rwxrw-rwx => +2000 => rwxrwSrwx
[Sticky bit - 기타사용자 특수 권한]
- Others에 모든 허가권을 부여해도 소유자/root가 아니면 삭제는 할 수 없다.
- 주로 디렉터리만 설정한다.
==Sticky bit== + 1000
rwxrwxrwt 1777 => Others에 실행 권한 존재, 특수 권한 부여 시 t
=> rwxrwxrwx => +1000 => rwxrwxrwt
rwxrwxrwT 1776 => Others에 실행 권한 미존재, 특수 권한 부여 시 T
=> rwxrwxrx- => +1000 => rwxrwxrwT
'[Linux] 리눅스(CentOS7)' 카테고리의 다른 글
[Linux] 리눅스 디스크 파티션 (0) | 2022.03.11 |
---|---|
[Linux] 리눅스 하드 링크와 심볼릭 링크(소프트 링크) (0) | 2022.03.10 |
[Linux] 리눅스 Umask (0) | 2022.03.08 |
[Linux] 허가권과 소유권_2 (0) | 2022.03.07 |
[Linux] 리눅스의 허가권과 소유권 (2) | 2022.03.06 |