제한 사항.conf ulimit가 chroot된 프로세스에 적용되지 않습니다.

제한 사항.conf ulimit가 chroot된 프로세스에 적용되지 않습니다.

우리는 사용자가 우리 서버에서 스크립트를 실행할 수 있도록 허용합니다. 우리의 보안 모델에는 루트를 바꾸는 것이 포함됩니다. 우리는 그들에게 ulimit 제한을 적용할 수 있기를 원하며 이를 수행하는 가장 좋은 방법은 다음과 같습니다./etc/security/limits.conf

하지만 작동하지 않는 것 같습니다. 우리가 설정한 내용은 다음과 같습니다 limits.conf.

@registered_users    -    priority   7
@registered_users    -    nice       7
*                    -    priority   9
*                    -    nice       9

그리고 어떤 경우에는 작동합니다:

sudo -u testuser python

Python 프로세스에 친절도 9를 제공합니다(7이 아님, 귀찮게도).

하지만

sudo chroot --userspec=testuser:registered_users python

niceness 0의 Python 프로세스를 제공합니다.

어떤 단서가 있나요?

session required pam_limits.so에 추가하려고 시도했지만 /etc/pam.d/common-session소용이 없었습니다.

답변1

/etc/security/limits.conf의 설정은 pam_limits를 사용하여 설정하는 프로그램이 없기 때문에 chroot 내에서 작동하지 않습니다. sudo의 PAM 구성이 pam_limits를 호출하기 때문에 sudo를 사용할 때 작동합니다.

확실한 대답은 여기에서 말하는 것처럼 "su"와 같이 pam_limits를 사용하는 chroot 내부에서 무언가를 호출하는 것입니다.https://lists.debian.org/debian-user/2010/09/msg01398.html(기본적으로 주석 처리되어 있으므로 /etc/pam.d/su에서 pam_limits를 사용하는 줄의 주석 처리를 제거해야 합니다.)

즉, chroot 디렉토리가 /srv/chroot이고 /usr/bin/python을 실행하고 싶다고 가정하면 다음과 같이 시도해 볼 수 있습니다.

sudo chroot /srv/chroot su testuser /usr/bin/python

나는 sudo도 그 일을 할 것이라고 생각합니다.

sudo chroot /srv/chroot sudo -u testuser /usr/bin/python

하지만 저는 이와 같은 경우에 사용하는 "su"에 대해서만 말할 수 있습니다. 시도해 보시고 효과가 있었는지 말씀해 주십시오.

관련 정보