모듈에서 getutent()의 기능을 하는 함수를 이용할 수 있을까요?
글쓴이: inner9771 / 작성시간: 토, 2004/11/27 - 4:27오후
유저 정보를 얻어오는 getutent()가 유저레벨이구 소스를 끝까지 따라가 봤는데 호출하는 시스템콜도 없더라구요...-_-;
모듈에서 유저의 정보들을 하나씩 얻어오는 시스템콜이나 아니면 마땅한 방법 없을까요??
아니면 getutent()함수의 구현부분이라도 보고 싶네요...
끝까지 찾아봐도
#define __THROW throw()
struct utmp *getutent(void) __THROW;
이렇게 선언부만 돼있고 정의된 부분이 없어요...
대체 getutent()나 setutent() 같은 함수들의 원형은 무엇일까요??
어떻게 구현돼있는 건지...
3일째 밤 새고 있는데 답이 전혀 안보이네요..........
Forums:
어떤 정보가 필요하신지요?
커널 내에서 사용자의 정보를 유지하는 것은 상당히 제한적입니다.
task_struct 구조체에서 user_struct 구조체 정보를 가지고 있으니
이를 이용하시면 uid 는 물론 특정 사용자가 현재 실행중인 프로세스의 수와 현재 열고있는 파일의 수는 알아낼 수 있습니다.
그외의 정보는 /etc/passwd 파일을 직접 접근해야 할 듯 하군요.
참고로 getutent() 함수는 커널과는 관련이 없고
단지 현재 로그인한 사용자의 정보를 저장하고 있는 /var/run/utmp 파일을 읽어오는 함수 입니다.
</usr/include/bits/utmp.h> 에 struct utmp 구조체가 정의되어 있습니다.
댓글 달기