사용자 공간에서 user_struct의 데이터에 액세스하는 방법

사용자 공간에서 user_struct의 데이터에 액세스하는 방법

기존 명령이나 API를 통해 Linux 사용자 공간의 user_struct에서 정보를 얻을 수 있는 방법이 있습니까?

즉, ULIMITS에 의해 제어되는 사용자가 현재 열고 있는 파일 및 작업의 수를 얻을 수 있습니다.

답변1

커널 소스 코드를 살펴보았습니다(구체적으로는리눅스/user.c/proc시스템 호출 정의나 항목 관리를 찾지 못했습니다 ...

그래서 이 작업을 수행할 API가 없는 것 같습니다. :-(

따라서 두 가지 솔루션이 있습니다.

  • 이러한 통계를 덤프하는 각 사용자에 대해 `/proc/̀ 항목을 구현하는 커널 모듈을 개발할 수 있습니다.

  • /proc/<pid/항목(프로세스 소유자가 소유한 디렉터리)을 구문 분석하고 대상 사용자가 소유한 각 프로세스에 대해 파일 등을 fd구문 분석 할 수 있습니다 .stat

답변2

간단한

man ulimit

사용자 제한 사항에 대한 일반적인 설명과 (맨페이지 하단에) "참조" 섹션을 제공합니다. 거기에서 다음을 찾을 수 있습니다:

제한 사항 받기(2)

이는 "getrlimit()"(맨페이지 섹션 2)라는 시스템 호출이 있음을 의미합니다. 그래서 당신이 할 때

man 2 getrlimit

사용자 제한 구조를 검색하는 데 필요한 모든 정보를 얻을 수 있습니다.

관련 정보