리눅스에는 권한비트가 있는데 보통 777 700 등 3자리다.
하지만 앞에 4, 2 등이 붙는경우가 있는데 이를 특수비트라고 한다.
1. 뒤 권한비트가 읽기=4, 쓰기=2, 실행=1 을 조합하여 총 8가지의 경우를 내듯이 특수권한도 같은 방법을 사용한다.
2. Setuid=4, setgid=2, sticky bit=1
3. Setuid에 대해
1) 실 사용자(프로그램을 실제 실행 중인 사용자)에서 프로그램 소유자의 ID로 유효 사용자(EUID)가 변경됨
2) 슈퍼유저 root만 접근할 수 있는 파일이나 명령에 대해, 일반 사용자로 접근하는 것이 기능상 필요한 경우(이 비트가 설정된 파일은 실행순간만 그 파일의 소유자 권한으로 실행)
> 실행 순간만 권한을 빌려온다고 생각하면 된다.
3) 매번 슈퍼유저 root가 어떤 행위를 해주지 않아도 되고, 일반 사용자에게 root권한을 주지 않아도 되기 때문에 시스 템 운영면에서 효율적이다.
4) 대부분 슈퍼유저가 소유한 소수 프로그램들에만 주어진다.
5)일반 사용자가 그 프로그램을 실행하면 setuid rood가 되고, 슈퍼유저의 유효한 특권들을 가지고 실행되기 때문에
일반 사용자의 접근이 금지된 파일과 디렉토리에 접근이 가능하게 된다.
6) Ls -l 을 입력했을 때 setuid가 적용되어 있다면 소문자 s, 없다면 대문자 S로 표기된다.
(User권한 중 실행권한에 x대신 표기)
그렇다면 언제쓰는가??
>> 우리가 가장 일반적으로 볼 수 있는 파일은 /usr/bin/passwd 이다. 사용자가 자기 자신 비밀번호를 바꿔야하는데, root 권한으로 바꿔야 하므로 잠시 root권한을 빌려올 수 있는 setuid 권한을 부여하였다.
단, 너무 많이 사용하면 보안점이 취약하므로 .. 많이사용하는것을 자제 해야한다...
4. Setgid에 대해
1) Setuid비트처럼 유효그룹 ID(EGID)를 실 사용그룹 ID에서 소유자 그룹 ID로 변경한다.
2) 이 비트가 설정되어 있으면, 이 디렉토리에 새로 설정된 파일들은 디렉토리 그룹 소유권 보다 파일 생성자의 그룹 소 유권을 얻게 될 것
3) 일반 파일 그룹의 멤버가 파일 소유자의 그룹에 상관없이 디렉토리 모든 파일에 접근이 필요한 공유 디렉토리에 유용
d) Setuid와 마찬가지로 권한이 s/S로 표기된다. (Group권한 중 실행권한 x 대신)
5. Sticky bit에 대해
1) 리눅스는 파일의 sticky bit는 무시한다.
2) Sticky 비트는 특정 디렉토리를 누구나 자유롭게 사용 할 수 있게 하기 위함이다 (공용 디렉토리에 사용)
3) 단 sticky 비트가 디렉토리에 적용되면 디렉토리 소유자나 파일 소유자 또는 슈퍼유저가 아닌 사용자들은 파일을 삭제 하거나 이름을 변경하지 못하도록 막는다.단, 파일이나 디렉토리 생성은 누구나 가능하다
e) Sticky 비트를 공유모드라고도 한다.
f) 이 비트가 설정되어 있으면 Other 권한 중 실행 권한자리에 t / T 로 표기된다.
g) /tmp 디렉토리 처럼 공용 디렉토리 접근에 활용됨
6. 특수권한 파일 검색
a) 특수권한 비트가 설정되어 있으면, 접근권한을 이용해서 find 명령으로 따로 검색할 수 있다.
b) Find <경로> -perm <접근권한> -ls(생략가능)
7. 특수권한은 해당 자리의 기존 권한에 실행 권한이 있어야 정상적으로 적용 된다.
'IT 공부 > OS' 카테고리의 다른 글
배치 시스템의 특징 (0) | 2024.03.16 |
---|---|
[OS] 좀비프로세스란? (0) | 2024.03.13 |
OSI 7계층 (L4, L7 스위치) (0) | 2024.02.24 |
[ShellScript] getopts 를 이용하여 옵션 받기 (0) | 2022.12.21 |
[OS] UNIX 환경에서의 LANG=C 의 의미 (0) | 2021.07.29 |