PAM 없이 ulimit 설정

PAM 없이 ulimit 설정

어떻게 하나요? 내 GNU/Linux OS에 PAM이 없으면 열린 파일 수는 기본적으로 1024이며 ulimit -n NNNN/etc/security/limits.conf에 무엇을 기록하든 (명령을 통해) 4096 이상으로 늘릴 수 없습니다. 그렇다면 PAM 없이 어떻게 작동하며 이 경우 제한을 설정하는 방법은 무엇입니까?

===업데이트===

나는 PAM을 직접 사용하기로 결정했습니다. PAM을 사용하지 않고 열린 파일의 하드 제한을 초과하려는 경우 rlimits의 하드 제한으로 4096개 파일 수를 정의하는 RLIMIT_NOFILE및 에서 상수를 찾으세요. include/asm-generic/resource.h또한 CAP_SYS_RESOURCE를 확인하십시오. 제한을 초과하려면 실행 중인 시스템을 호출해야 합니다. Bash처럼 시스템 호출을 할 수 있는 방법은 없는 것 같지만, 바이너리 실행 파일로 구현할 수는 있습니다. 또는 커널 패치를 적용할 수 있습니다.INR_OPEN_MAXinclude/linux/fs.hsetrlimit()setrlimit()

답변1

실제로 가능합니다. ulimitCAP_SYS_RESOURCE 함수를 사용하여 시스템 호출을 실행하기만 하면 됩니다(명령이 수행하는 작업입니다).

각 제한에는 하드 제한과 소프트 제한이라는 두 가지 값이 있습니다. 사용자는 소프트 제한을 하드 제한으로 늘릴 수도 있습니다. 하드 제한은 적절한 권한이 있어야만 늘릴 수 있습니다(일부 리소스의 경우 커널 제한을 초과할 수 없음). 자세한 내용은 을 참조하세요 man getrlimit.

가장 쉬운 방법은 루트를 통해 실행하는 것입니다(예: 다음과 같이 실행: su root; ulimit; su user- 먼저 루트가 되어 거기에서 제한 사항을 변경한 다음 다시 적절한 사용자로 돌아가십시오). 안전한 방법은 위의 기능 세트를 수행하는 바이너리를 갖는 것입니다. ( man setcap및 참조 man capabilities) 및 적절한 액세스 권한.

귀하의 경우 하드 제한은 4096이므로 귀하 자신(사용자)은 해당 제한을 초과할 수 없습니다.

관련 정보