Я пытаюсь поднять максимум дескриптора открытого файла для всех пользователей на машине с Ubuntu.
Этот вопрос является своего рода продолжением этого вопроса.
за исключением того, что я добавил необходимые «корневые» записи в limit.conf
Вот записи
* soft nofile 100000
* hard nofile 100000
root soft nofile 100000
root hard nofile 100000
Строки, связанные с pam_limits.so
комментариями во всех соответствующих файлах в /etc/pam.d/ и fs.file-max
были правильно установлены в /etc/sysctl.conf
Тем не менее, я все еще вижу
abc@machine-2:/etc/pam.d$ ulimit -n
1024
после перезагрузки.
В чем может быть проблема?
Моя оболочка по умолчанию - / bin / sh, и я не могу использовать chsh, чтобы изменить оболочку по умолчанию, так как мой пользователь на машине аутентифицирован с помощью некоторой распределенной схемы аутентификации.
Ответы:
У меня была похожая проблема, но только с SSH логинами. Локальные логины (через консоль) соблюдаются
/etc/security/limits.conf
.Как оказалось, при установке:
в
/etc/ssh/sshd_config
файле, тогда sshd разветвляет непривилегированного ребенка, чтобы настроить env учетной записи. Поскольку этот дочерний элемент непривилегирован, установка верхнего предела pam_limits.so не имела никакого эффекта.Как только я установил
в
/etc/ssh/sshd_config
и отклонил службу SSH, тогда файл limit.conf был соблюден при входе в систему SSH.источник
UsePAM yes
. (+1 за указание на sshd-config)Я подозреваю, что ulimit применяется профилем / etc / или ~ / .bashrc. Тот факт, что ваша система имеет сложную пам, я бы подтвердил, что что-то не так.
Я также подтвердил бы, что в /etc/security/limits.d/ нет файла с ошибками, который анализируется, как указано в pam_limits (8).
Я бы добавил параметр отладки в строку pam_limits.conf, необходимую для сеанса, и затем смотрел бы /var/log/auth.log при входе в систему.
Если ваш мягкий лимит составляет 1024, каков ваш жесткий лимит?
su должен получить новый, новый вход в систему с помощью аргумента -l.
su -l -s / bin / bash
Удачи.
источник
ulimit -Hn
На сервере Redhat вошли как root
/etc/security/limits.conf
команда strace зарегистрирована как root
с другой оболочкой открыть логлимит
Таким образом, я знаю, что pam_limits был загружен и limit.conf был прочитан, если ваш pam_limits был загружен, но вы все еще видите другие значения, используя ulimit -n, проверьте свой профиль оболочки, как сказал @etherfish
источник
У меня была такая проблема, вот что я сделал.
Команда strace напечатает все взаимодействия, которые процесс выполняет с внешними библиотеками, поэтому мы можем увидеть, загружен ли наш конфиг или нет.
Итак, я делаю, как предложено выше:
В моем выпуске журнал strace (strace -o log su - username) не имеет экземпляра текста ограничений, поэтому файл limit.conf НЕ был загружен.
Сначала я проверяю, что pam_limits.so ищет /etc/security/limits.conf
Итак, я проверяю, что модуль pam_limits.so загружается в режиме аутентификации в файлах, расположенных в /etc/pam.d ... например, в /etc/pam.d/su я добавил:
Теперь я могу сделать su для моего пользователя, и ограничения будут загружены. Вы можете повторить шаг strace, чтобы убедиться в этом.
Мой linux - LFS, поэтому я виноват в отсутствии pam_limits.so в файлах /etc/pam.d. В других дистрибутивах я не думаю, что это именно та проблема.
Но надеюсь, это поможет.
источник
В моем случае (Centos 6.10) strace показал, что после того, как лимит был установлен из /etc/security/limits.conf, позже в процессе входа в систему он был сброшен из /etc/security/limits.d/90-nproc.conf для всех не Пользователи root:
источник