SUID = Set UID의 약자.
프로세스가 실행중인 동안 일시적으로 해당 실행 파일의 소유자, 소유그룹의 권한으로써 자원에 접근할 수 있도록 하는 권한 설정.
SUID가 설정된 프로그램 동작 시 프로세스가 동작하는 동안에 다음과 같이 설정한다.
RUID = 실행시킨 사용자의 UID
EUID = 실행 파일 소유자의 UID
유닉스 파일에 rwsr-xr-x 권한 설정된 경우
소유자 권한에서 x 권한 자리에 s로 설정되어있다.
누가 실행하든지 관계없이 해당 파일이 실행될 때 파일 소유자의 권한을 갖는다.
A = 파일 소유자
B = 파일 실행자
이때 B가 파일을 실행하면 A의 권한을 갖는다.
해당 파일의 소유자가 root이면 그 파일을 실행하는 사람이 누가 되었든지 파일이 실행되는 프로세스는 실행되는 동안 파일 소유자인 root 권한으로 실행된다.
* UID = User ID
유닉스 운영체제의 커널은 사용자를 식별할 때 사용자 식별자(UID)라 불리는 양의 정수를 사용한다.
15비트 정수(0~32767)로 표현됨.
- UID 0 = 슈퍼 유저.
- nobody 사용자에게는 가장 큰 UID가 할당된다.
- 관레적으로 1~100까지는 시스템 용도로 예약돼있다.
레드햇 = 1~499
데비안 = 1~999
어떤 UID에 해당하는 사용자는 /etc/password에서 찾을 수 있다.
쉐도우 패스워드 파일과 네트워크 정보 서비스 또한 사용자를 UID로 참조한다.
유닉스 파일 시스템과 프로세스에서도 사용된다.
일부 운영체제는 16비트 UID를 지원해 65,536개의 숫자를 사용할 수 있게 해준다.
32비트 UID는 2의 32승개만큼 지원한다.
'시스템 해킹' 카테고리의 다른 글
Buffer Overflow (0) | 2022.08.12 |
---|---|
pwnable.kr collision (0) | 2022.08.12 |
질문 - 2주차 (0) | 2022.08.05 |
quizmachine 문제 풀이 (0) | 2022.08.04 |
SSH, File Descriptor, nc 명령어 (0) | 2022.08.03 |