Кажется, я не могу увеличить nofile
ограничение для пользователей без полномочий root в Ubuntu 14.04, несмотря на то, что следую каждому ответу StackExchange, связанному с этой проблемой. Пока что у меня есть:
$ cat /etc/security/limits.d/custom.conf
@www-data hard nofile 50000
@www-data soft nofile 50000
# even tried specifying the username directly:
myuser hard nofile 50000
myuser soft nofile 50000
$ grep 'limits' /etc/pam.d/common-session*
/etc/pam.d/common-session:session required pam_limits.so
/etc/pam.d/common-session-noninteractive:session required pam_limits.so
$ cat /proc/sys/fs/file-max
101232
Перезагрузился, залогинился и:
$ ulimit -n 4097
-bash: ulimit: open files: cannot modify limit: Operation not permitted
Там все еще как-то, кажется, ограничение в 4096 макс для пользователей без полномочий root.
Ответы:
Используя Ubuntu 14.04, я получил жесткое ограничение:
Я мог бы уменьшить его, используя ulimit, но не увеличивать его, как описывает вопрос. Как описывает руководство ulimit:
Поэтому я попытался установить более высокий предел в
/etc/security/limits.conf
следующем виде:и новый логин вроде
ssh localhost -l user
дал мне новый лимит:Надеюсь, это работает и для вас.
источник
/etc/security/limits*
не читается вашим механизмом входа в систему - по неизвестной пока причине. 2. Ваш жесткий предел установлен на 4096 в другом месте, и «только root может увеличиться ...». Вы можете проверить свои профили как.bashrc
(в зависимости от вашей оболочки), или вы можете проверить/etc
другие места, где могут быть установлены ограничения, напримерfind /etc | grep -e ulimit -e 4096 -e nofile
. Кстати: ты пробовал ssh? И: вы изменили,/etc/ssh/sshd.conf
чтобы избежать PAM по какой-то причине?/etc/security/limits*
- вы можете попытаться включить PAM только для проверки этого. Я попробую отключить PAM, чтобы увидеть, какая разница, и сообщу о результатах. --- Да! Это оно! С отключенным PAM мой лимит также составляет 4096, хотя и установлен на 9999 дюйма/etc/security/limits.conf
.Эта статья , я думаю, решает вашу проблему.
В основном вы должны использовать команду ulimit для увеличения доступных ресурсов.
Например:
Используйте следующую команду для отображения максимального числа дескрипторов открытых файлов:
Чтобы увидеть жесткие и мягкие значения, введите команду следующим образом:
Чтобы увидеть жесткие и программные значения для пользователя httpd или oracle, введите следующую команду:
Чтобы зафиксировать максимальное количество файлов, вы можете увеличить максимальное количество открытых файлов, установив новое значение в переменной ядра / proc / sys / fs / file-max следующим образом (войдите в систему как root):
Выше команды форсирует ограничение до 100000 файлов. Вам нужно отредактировать
/etc/sysctl.conf
файл и поставить следующую строку, чтобы после перезагрузки настройка оставалась как есть. Для этого добавьте директиву config следующим образом:Сохраните и закройте файл. Чтобы изменения вступили в силу, пользователям необходимо выйти и снова войти в систему или просто введите следующую команду:
Проверьте настройки с помощью команды:
или:
Вышеуказанная процедура устанавливает ограничения для файловых дескрипторов системы (FD), однако вы можете ограничить
httpd
(или любых других пользователей) пользователей определенными ограничениями, отредактировав/etc/security/limits.conf
файл путем редактирования/etc/security/limits.conf
и установив ограничения следующим образом:Затем проверьте их по:
Если у вас есть проблема в других дистрибутивах Linux, проверьте
/etc/pam.d/login
и убедитесь, что у васpam_limits.so
включено, напримеристочник
Если это услуга, вы можете попытаться установить ограничение в
/etc/systemd/system/{ServiceName}.service
добавленииLimitNOFILE=65536
источник