Перезагрузить /etc/security/limits.conf
Я бы хотел:
- установить мягкое ограничение в 64 ГБ для резидентной памяти (чтобы неопытные пользователи могли убить свои процессы запуска, но опытные пользователи могут повысить ограничение для процессов, требующих памяти)
- увеличьте жесткое ограничение для nofile, но сохраните мягкое ограничение на 1024 (поэтому, если определенной программе требуется больше файловых дескрипторов, пользователь может предоставить их, но программы run-amok не получат их).
Насколько я вижу, я должен быть в состоянии сделать это в /etc/security/limits.conf (или в /etc/security/limits.d/*):
* soft rss 64000000
* hard nofile 50000
* soft nofile 1024
Однако я не могу найти способ перезагрузить эти значения без перезагрузки. Я прочитал, что значения загружаются при входе в систему; это работает, когда я делаю su - user но это не работает через ssh user@localhost,
У меня есть файл pam_limits.so в /etc/pam.d:
/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
У меня есть PAM в sshd_config:
/etc/ssh/sshd_config:UsePAM yes
Я знаю, что могу установить значения с помощью ulimit а также sysctl, но я хотел бы проверить, что /etc/security/limits.conf делает правильные вещи без перезагрузки.
Как я могу убедиться, что значения устанавливаются, когда люди входят в систему, используя ssh без перезагрузки?
2 ответа
Хмм....
UseLogin не нужен
UsePAM yes нужно.
Перезапуск sshd нужен только если UsePAM был изменен с нет на да.
Отключение моего ~/.ssh/config нужно было очень сильно!
я имел Control* заявления в моем ~/.ssh/config который повторно использовал канал ssh, и поэтому я не обнаружил бы изменения.
Спасибо Samed Beyribey и Quanta, чья помощь дала мне идею бежать ssh -vv который дает очень разные результаты, когда у вас есть Control* заявления.
Я прочитал, что значения загружаются при входе в систему; это работает, когда я делаю
su - userно это не работает черезssh user@localhost,
Причина в том, что по умолчанию SSH открывает оболочку без входа в систему, поэтому ограничения не применяются.
Чтобы сделать это использует оболочку входа, отредактируйте sshd_config файл и раскомментировать / изменить #UseLogin no в UseLogin yes:
gentoo ~ # grep UseLogin /etc/ssh/sshd_config
#UseLogin no
gentoo ~ # sed -i.bak 's/#UseLogin no/UseLogin yes/' /etc/ssh/sshd_config
gentoo ~ # grep UseLogin /etc/ssh/sshd_config
UseLogin yes
Перезагрузить sshd и попробуй еще раз.
Источник: http://znx.no/2011/01/ssh-and-limits/