我想:
- 为驻留内存设置一个 64GB 的软限制(这样没有经验的用户会杀死他们的运行进程,但有经验的用户可以提高内存饥饿进程的限制)
- 提高 nofile 的硬限制,但将软限制保持在 1024(因此,如果某个程序需要更多文件句柄,用户可以授予它们,但运行程序不会得到它们)。
据我所知,我应该能够在/etc/security/limits.conf
(或在/etc/security/limits.d/*
)中做到这一点:
* soft rss 64000000
* hard nofile 50000
* soft nofile 1024
但是,我无法找到一种无需重新启动即可重新加载这些值的方法。我读到登录时会重新加载这些值;当我这样做时它会起作用,su - user
但它不会通过ssh user@localhost
.
我在 /etc/pam.d 中有 pam_limits.so:
/etc/pam.d/login:session required pam_limits.so
/etc/pam.d/sshd:session required pam_limits.so
/etc/pam.d/su:session required pam_limits.so
我在 sshd_config 中有 PAM:
/etc/ssh/sshd_config:UsePAM yes
我知道我可以使用ulimit
和设置值sysctl
,但我想测试它/etc/security/limits.conf
是否在不重新启动的情况下做正确的事情。
当人们在不重启的情况下使用 ssh 登录时,如何确保设置了这些值?
呜……
UseLogin
不需要。UsePAM yes
是需要的。仅当从否更改为
sshd
是时才需要重新启动。UsePAM
~/.ssh/config
非常需要禁用我自己的!我
Control
在我的 * 语句中~/.ssh/config
重新使用了 ssh 通道,因此我不会发现更改。感谢 Samed Beyribey 和 quanta,他们的帮助给了我运行的想法,当你有* 语句
ssh -vv
时,它会给出非常不同的输出。Control
原因是:默认情况下,SSH 打开一个非登录 shell,因此没有应用限制。
要使其使用登录 shell,请编辑您的
sshd_config
文件并取消注释/更改#UseLogin no
为UseLogin yes
:重新加载并重
sshd
试。资料来源:http: //znx.no/2011/01/ssh-and-limits/