기존 명령이나 API를 통해 Linux 사용자 공간의 user_struct에서 정보를 얻을 수 있는 방법이 있습니까?
즉, ULIMITS에 의해 제어되는 사용자가 현재 열고 있는 파일 및 작업의 수를 얻을 수 있습니다.
답변1
커널 소스 코드를 살펴보았습니다(구체적으로는리눅스/user.c/proc
시스템 호출 정의나 항목 관리를 찾지 못했습니다 ...
그래서 이 작업을 수행할 API가 없는 것 같습니다. :-(
따라서 두 가지 솔루션이 있습니다.
이러한 통계를 덤프하는 각 사용자에 대해 `/proc/̀ 항목을 구현하는 커널 모듈을 개발할 수 있습니다.
/proc/<pid/
항목(프로세스 소유자가 소유한 디렉터리)을 구문 분석하고 대상 사용자가 소유한 각 프로세스에 대해 파일 등을fd
구문 분석 할 수 있습니다 .stat
답변2
간단한
man ulimit
사용자 제한 사항에 대한 일반적인 설명과 (맨페이지 하단에) "참조" 섹션을 제공합니다. 거기에서 다음을 찾을 수 있습니다:
제한 사항 받기(2)
이는 "getrlimit()"(맨페이지 섹션 2)라는 시스템 호출이 있음을 의미합니다. 그래서 당신이 할 때
man 2 getrlimit
사용자 제한 구조를 검색하는 데 필요한 모든 정보를 얻을 수 있습니다.