为正在运行的守护程序启用PAM配置(limits.conf)

时间:2014-02-24 04:52:53

标签: daemon docker limits pam

我目前正在尝试使用Docker开发沙盒。 Docker通过一个正在运行的守护进程生成进程,并且我在limits.conf文件中设置限制时遇到了很多麻烦,以至于它们都应用于守护进程。具体来说,我正在运行一个forkbomb,以便守护进程产生所有新进程的进程。我对发出此调用的用户施加的nproc限制似乎没有得到应用,而我对我的生活无法弄清楚如何使其工作。我很安静,它会像在/etc/pam.d/中添加正确的文件一样简单,但我不确定。

1 个答案:

答案 0 :(得分:2)

PAM限制仅适用于与PAM一起玩的流程。默认情况下,当您在容器中启动shell时,它与PAM没有任何关系,并且通过PAM设置限制将不起作用。

以下是其他一些实现目标的方法!

  1. 您可以启动一个小的包装器脚本,而不是立即启动您的过程,该脚本将在执行您的过程之前执行相应的ulimit调用。

  2. 如果您想要一个交互式shell,可以运行login -f <username>(例如login -f root);这将使用正常的登录过程在机器上自动登录(这应该通过正常的PAM机制)。

  3. 如果您希望所有容器都受到这些限制,您可以在系统上设置限制,然后使用这些下限重新启动Docker;容器由Docker创建,默认情况下,它们也将继承这些限制。