728x90
반응형
getuid()란?
- 현재 계정의 접속권한을 보여주는 함수
geteuid()란?
- 현재 어떤 권한으로 해당 프로세스가 동작하는지 보여주는 함수
UID란?
- 특정 프로세스를 누가 실행했는지를 기록
- uid : 0 → root권한을 뜻함
- uid : 1000 → 일반 유저를 뜻함
EUID란?
- euid(Effective UID)는 높아질 수도 있으며 낮아질 수도 있음
- 이 프로세스가 무슨(어떤) 권한으로 동작하나를 판단할 때 보는 값
확인 코드 및 결과
root@royal:/home/ubuntu/modern_linux# id --user
0
root@royal:/home/ubuntu/modern_linux# vi getuid.c
#include <unistd.h>
#include <stdio.h>
int main(){
printf("UID : %d\\n", getuid());
printf("EUID: %d\\n", geteuid());
}
---------------------------------------------------
root@royal:/home/ubuntu/modern_linux# ./getuidcode
UID : 0
EUID: 0
===================================================
ubuntu@royal:~/modern_linux$ id --user
1000
ubuntu@royal:~/modern_linux$ ./getuidcode
UID : 1000
EUID: 1000
EUID가 중요한 이유
- 파일 소유주 root이며, 해당 파일에 chmod u+s(set-UID)를 설정했을 경우
- 누가 실행하든 해당 프로세스(파일)의 EUID는 0(root)이 됨.
- 즉 root가 실행한것 처럼 해당 프로세스(파일)에서는 모든 권한을 사용할 수 있게 됨
- 만약 파일 소유주가 root가 아니라면, 해당 파일 소유주만큼의 권한을 획득
- RUID와 EUID를 확인하는 방법
- ps -o pid,ruid,euid,cmd -p $$ 명령어를 통해서 확인 가능
ubuntu@royal:~/modern_linux$ ps -o pid,ruid,euid,cmd -p $$ PID RUID EUID CMD 724955 1000 1000 -bash
728x90
반응형
'운영체제' 카테고리의 다른 글
Kernel (1) - 커널모드/사용자모드 (0) | 2025.05.20 |
---|---|
VMware Windows11 설치 방법 (0) | 2023.10.26 |
윈도우 VMware 환경에서 macOS(Monterey) 설치 및 네트워크(인터넷)연결 방법 (0) | 2022.06.14 |
macOS] DNS Suffix 테스트( /etc/resolve.conf 관련) (0) | 2022.04.04 |