limit.conf ulimits 未應用於 chroot 進程

limit.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 中的設定在 chroot 內不起作用,因為沒有程式使用 pam_limits 來設定它們。它們在您使用 sudo 時起作用,因為 sudo 的 PAM 配置確實會呼叫 pam_limits。

顯而易見的答案是呼叫 chroot 內部使用 pam_limits 的東西,例如“su”,正如他們在這裡所說的: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”,這是我在這種情況下使用的。請嘗試一下,看看它是否適合您。

相關內容