[Решено] Авторизация в Linux из терминала - Permission denied. Could not set limit for 'nofile'
limits.conf - конфигурационный файл для
pam_limits.soмодуля. Он определяет ulimit лимиты для пользователей и групп. В Linux есть системные вызовы:getrlimit()иsetrlimit()для получения и установления лимитов на системные ресурсы. Конфигурация по-умолчанию лежит в/etc/security/limits.conf
При попытке авторизации из консоли виртуализации любым пользователей появляется сообщение: Permission denied, и далее идет срока ввода логина, т.е. следующая попытка авторизации.
При попытке авторизации через ssh-клиент (putty), окно программы закрывается.
Загружаем ОС в однопользовательском режиме. Для этого во время загрузки ОС при выборе ядра жмем е и меняем ro на rw init=/sysroot/bin/sh Для загрузки нажимаем Ctrl+X
Далее выполняем команду
1
# chroot /sysroot
Сама ошибка отображается в лог-файле /var/log/secure (для Centos)
1
2
3
4
...
PAM pam_open_sessiob(): Permission denied
...
Could not set limit for 'nofile': Operation not permitted
Смотрим установленный лимит на максимально количество открытых файлов
1
# cat /etc/security/limits.conf
Допустимый диапазон значений для nofile: 1-1048576
У меня он был выше разрешенного
После внесения изменений выполняем команду, чтобы включить перемаркировку SELinux, и изменения применились
1
# touch /.autorelabel
Перезагружаем систему
1
# reboot -f
