web-dev-qa-db-ja.com

limits.confulimitsが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プロセスを素晴らしく9(7ではなく迷惑))にします

だが

Sudo chroot --userspec=testuser:registered_users python

pythonプロセスをniceness0で与えます。

手がかりはありますか?

session required pam_limits.so/etc/pam.d/common-sessionに追加しようとしましたが、役に立ちませんでした。

4
hwjp

/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 chroot /srv/chroot Sudo -u testuser /usr/bin/python

でも、こういう場合に使うのは「す」しか話せません。試してみて、うまくいったかどうか教えてください。

1
rsuarez