Некоторое время назад мы начали аутентифицировать пользователей на наших серверах Linux с помощью Active Directory. Что касается фактической части аутентификации, все работает отлично.
Однако одним из побочных эффектов является то, что Linux считает (вроде правильно), что у него несколько тысяч (~ 15-20 тысяч) пользователей. Мы видели несколько проблем, которые кажутся связанными с SELinux (одна из которых https://serverfault.com/questions/236419/usr-bin-install-hangs-apparently-due-to-selinux). Некоторые другие проблемы включают:
Мы видим эти проблемы с SELinux в снисходительный Режим. Они исчезнут, когда мы полностью отключим SELinux. Отключение SELinux - это вариант. Я также ищу способы ограничить количество пользователей, которых AD представляет для Linux, с помощью подразделения или группы. Но ботаник во мне всегда хочет знать больше.
Это довольно широкий вопрос, но есть ли у кого-нибудь совет по работе с SELinux с большим количеством пользователей? Я не особенно знаком с SELinux, но это может быть возможностью для обучения.
Мне кажется, что это упущение в отношении libselinux.
«Исправить» здесь было бы переименование старого /etc/selinux/targeted/contexts/files/file_contexts.homedirs во что-нибудь другое. Создайте новый (обычно содержащий несколько общих регулярных выражений, которые вы можете найти в верхней части исходного файла), а затем установите этот файл неизменяемым, чтобы средство перезаписи политики не регенерировало файл (это происходит, когда новая политика selinux -целевые обороты развернуты).
Это предотвратит пережевывание процессора.
Ваша проблема возникает из-за того, что restorecond открывает этот файл как ссылку для сканирования файлов в каталогах пользователей, которые всегда должны быть защищены от недопустимых изменений меток файлов. Но поскольку ваш файл содержит тысячи и тысячи записей, сканирование использует большое количество ресурсов ЦП.
Я подозреваю, что это никогда не рассматривалось при создании библиотеки и, вероятно, требует переосмысления со стороны SELinux. Но пока - это «исправление» должно сработать.
Это действительно зависит от того, что на самом деле делает restorecon, но обычно вы не хотите запускать его вообще, так как это означает, что файлы помечаются неправильными метками, и restorecon хочет исправить это. Решением было бы, чтобы эти файлы уже были созданы с правильной меткой.
Если это на самом деле демон второй который работает в фоновом режиме для переназначения, вы можете настроить его так, чтобы он не создавал файлы там, где не должен. См. Страницу руководства для restorecond.
Эти серверы имеют дело со многими файлами? Или создается много файлов? Монтирует ли он общие ресурсы NFS?
Какой дистрибутив вы используете? Redhat и Fedora очень хорошо реагируют на проблемы, связанные с selinux. Если реальная проблема - это размер базы данных пользователей или пользователей в группах, они почти наверняка захотят узнать об этом. Сообщите об ошибке с помощью bugzilla.