Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>
Docbook 원문

getuid(2)

1장. getuid(2)

차례
1.1. 사용법
1.2. 설명
1.3. 반환값
1.4. 에러
1.5. 예제
1.6. 참고문헌

유저 ID를 얻어온다.


1.1. 사용법

#include <sys/types.h>
#include <unistd.h>

uid_t getuid(void);
uid_t geteuid(void);
		


1.2. 설명

getuid()는 현재 프로세스의 실제 유저 아이디를 얻어온다.

geteuid()는 현재 프로세스의 유효 유저 아이디(effective user ID)를 언어온다.

실제 유저 아이디는 프로세스를 호출한 유저의 아이디이다. 유효 유저 아이디는 실행된 파일에 설졍된 SID를 가지는 아이디이다.


1.3. 반환값

유저의 ID를 되돌려준다.


1.4. 에러

이 함수들은 언제나 성공한다.


1.5. 예제

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <pwd.h>

int main()
{
    struct passwd *lpwd;
    printf("UID    : %d\n",getuid());
    printf("EUID   : %d\n" ,geteuid());

    lpwd = getpwuid(getuid());
    printf("UNAME  : %s\n", lpwd->pw_name);

    lpwd = getpwuid(geteuid());
    printf("EUNAME : %s\n", lpwd->pw_name);

}
		
위의 프로그램은 프로세스를 싱행 시킨 유저의 ID와 이름, 프로세스의 SID 와 이름을 출력한다. SID를 변경했을 때의 결과를 확인하기 위해서는 다음과 같이 root계정으로 해당 프로그램에 SID를 부여한다음 다른 계정의 유저로 프로그램을 실행시켜 보면 된다.
# chmod +s getuid
		


1.6. 참고문헌

  1. 안전한 프로그래밍

  2. seteuid(2)

  3. setuid(2)