Как убедиться, что значения nproc применяются ко всем пользователям?

Вопрос или проблема

В файле /etc/security/limit.conf я добавил следующие значения:

user1      -     nproc     unlimited 
user2      -     nproc     unlimited

Оба user1 и user2 имеют sudo привилегии, и я использовал user1 для внесения этого изменения. Затем я вышел из сервера и снова вошел.

Когда я проверяю как user1, команда ulimit -u выдает мне значение ‘Без ограничений’.
Однако, когда я проверяю как user2, команда ulimit -u выдает мне значение 10000.

Откуда может браться это значение?

Похоже, что процесс управления кластером (ambari) изменял значения для этого конкретного пользователя.

Ответ или решение

Чтобы установить и обеспечить корректное применение значений nproc для всех пользователей в Linux, необходимо учитывать несколько аспектов, особенно когда используются различные инструменты управления кластерами и системами. В представленном вами примере, после размещения настроек в файле /etc/security/limits.conf и их проверки, вы заметили, что для пользователя user1 значение ulimit -u отображает "бессрочно", в то время как у пользователя user2 это значение устанавливается в 10000.

Причины проблемы

  1. Применение настроек limit.conf: Обратите внимание, что настройки из файла limits.conf, которые прописаны для пользователей, могут не применяться в некоторых сценариях, например, если пользователь запускается в сессии, где системные ограничения могут быть переопределены (например, при использовании системных управлений, таких как Ambari).

  2. Отдельные конфигурации для пользователей: Возможно, для user2 установлены другие ограничения на уровне групп. Проверьте файл /etc/security/limits.d/, где могут находиться дополнительные конфигурации, касающиеся лимитов для групп пользователей, которые могут повлиять на user2.

  3. Конфигурации системных daemons или служб: В случае, если вы используете инструменты управления кластерами, такие как Ambari, они могут переопределять значения nproc при старте процессов или служб. Эти настройки могут находиться в конфигурационных файлах самой службы или в скриптах их инициализации.

Рекомендации по устранению проблемы

  1. Перепроверьте конфигурации пользователей:

    • Убедитесь, что в файлах /etc/security/limits.conf и /etc/security/limits.d/ нет конфликтующих записей для пользователя user2.
  2. Проверьте настройки Ambari:

    • Изучите конкретные настройки Ambari, относящиеся к пользовательским ограничениям. Обычно такие сервисы предоставляют возможность настроить лимиты, и, вероятно, есть необходимость обновить их настройку для соответствия вашим требованиям.
  3. Запуск shell:

    • Проверьте, как запускается shell для user2. Если он запускается через скрипты или другие механизмы (например, через системные службы), настройки из limits.conf могут не передаваться.
  4. Тестирование:

    • Проведите тестирование, создав временную учетную запись без привязки к специфическим инструментам, чтобы убедиться, что ограничение nproc работает корректно в стандартной среде.
  5. Перезагрузка:

    • После внесения любых изменений в конфигурации, включая файл limits.conf, рекомендуется перезагрузить систему, чтобы убедиться, что все изменения были применены.

В качестве заключения, для эффективного контроля над процессами и пользовательскими лимитами в любой системе, убедитесь, что все конфигурационные файлы и сервисы, взаимодействующие с пользователями, настроены последовательно. Это гарантирует, что ваши настройки будут применяться без исключений, обеспечивая нужный уровень контроля и безопасности в вашей операционной системе.

Оцените материал
Добавить комментарий

Капча загружается...