모듈에서 getutent()의 기능을 하는 함수를 이용할 수 있을까요?

inner9771의 이미지

유저 정보를 얻어오는 getutent()가 유저레벨이구 소스를 끝까지 따라가 봤는데 호출하는 시스템콜도 없더라구요...-_-;

모듈에서 유저의 정보들을 하나씩 얻어오는 시스템콜이나 아니면 마땅한 방법 없을까요??

아니면 getutent()함수의 구현부분이라도 보고 싶네요...
끝까지 찾아봐도
#define __THROW throw()
struct utmp *getutent(void) __THROW;
이렇게 선언부만 돼있고 정의된 부분이 없어요...

대체 getutent()나 setutent() 같은 함수들의 원형은 무엇일까요??
어떻게 구현돼있는 건지...

3일째 밤 새고 있는데 답이 전혀 안보이네요..........

pastime의 이미지

커널 내에서 사용자의 정보를 유지하는 것은 상당히 제한적입니다.

task_struct 구조체에서 user_struct 구조체 정보를 가지고 있으니
이를 이용하시면 uid 는 물론 특정 사용자가 현재 실행중인 프로세스의 수와 현재 열고있는 파일의 수는 알아낼 수 있습니다.

그외의 정보는 /etc/passwd 파일을 직접 접근해야 할 듯 하군요.

참고로 getutent() 함수는 커널과는 관련이 없고
단지 현재 로그인한 사용자의 정보를 저장하고 있는 /var/run/utmp 파일을 읽어오는 함수 입니다.
</usr/include/bits/utmp.h> 에 struct utmp 구조체가 정의되어 있습니다.