Я бы хотел:
Насколько я понимаю, я смогу сделать это за /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 без перезагрузки?
Гррр ....
UseLogin
не нужен.
UsePAM yes
нужно.
Перезапуск sshd
нужен только если UsePAM
было изменено с "нет" на "да".
Отключение моего собственного ~/.ssh/config
нужно было очень!
я имел Control
* заявления в моем ~/.ssh/config
который повторно использовал канал ssh, и поэтому я не обнаружил изменения.
Спасибо Самеду Бейрибе и квантам, с помощью которых мне пришла идея запустить 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/