limits.conf ulimits が chroot されたプロセスに適用されない

limits.conf ulimits が chroot されたプロセスに適用されない

弊社のサーバーでは、ユーザーがスクリプトを実行できるようにしています。弊社のセキュリティモデルでは、スクリプトを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 プロセスに niceness 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」についてだけです。ぜひ試してみて、うまくいったかどうか教えてください。

関連情報