[리눅스 시스템 프로그래밍] 8.3 로긴 이름과 유효 사용자 계정 이름 확인, getlogin, cuserid

 

리눅스 시스템에서는 로긴 이름과 유효 사용자 계정 이름을 확인하는 getlogin, cuserid 함수를 제공하고 있습니다. 로긴 이름은 실제 사용자 ID와 대응하는 계정의 이름입니다.

#include <unistd.h >

char *getlogin(void);

#include <stdio.h>

char *cuserid(char *buf);

 
getlogin 함수는 원격이나 rsh 등에서 로긴하여 호출하면 null을 반환합니다. 다음 예제는 로긴 이름과 유효 사용자 이름을 출력하는 예제 코드입니다.

다음은 ex_username 실행 파일을 실행하였을 때 로긴 이름과 유효 사용자 이름을 확인하는 화면입니다. 테스트 조건이 가상 터미널이라 로긴 이름은 구하지 못하여 null을 반환하고 있으며 유효 사용자 이름은 로긴 이름과 같음을 알 수 있습니다.

 

반면 set user id 비트를 설정하였을 때는 현재 로긴 이름과 관계없이 소유자 이름(set user id 계정 이름)임을 알 수 있어요.

[그림 8.11] ex_username 실행 화면
[그림 8.11] ex_username 실행 화면