Fedora 38: необходимы постоянные изменения в nsswitch.conf

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

У меня установлена Fedora 38 KDE Spin.
Чтобы получить доступ к ресурсам корпоративной VPN в зоне .local, мне нужно отправлять запросы на DNS-сервер после установления соединения.
Раздел hosts в файле nsswitch.conf по умолчанию выглядит так:

hosts:      files myhostname resolve [!UNAVAIL=return] dns

Если я изменю его следующим образом:

hosts:      files myhostname resolve dns [!UNAVAIL=return]

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

# Сгенерировано с помощью authselect
# Не изменяйте этот файл вручную, используйте вместо этого authselect. Любые пользовательские изменения будут перезаписаны.
# Вы можете остановить управление конфигурацией authselect, вызвав 'authselect opt-out'.
# См. authselect(8) для более подробной информации.

К сожалению, информации мало. Я нашел руководство по инструменту authselect в документации RedHat, но оно кажется неприменимым для Fedora.
Вот что там сказано:

Выберите профиль authselect, например:
# authselect select sssd

Отредактируйте файл /etc/authselect/user-nsswitch.conf с вашими желаемыми изменениями.

Примените изменения из файла /etc/authselect/user-nsswitch.conf:

# authselect apply-changes

Я не имею файла /etc/authselect/user-nsswitch.conf на моей системе.
Если я создам его, я не знаю, какое содержимое у него должно быть. Я попробовал

cat /etc/authselect/user-nsswitch.conf 
hosts:      files myhostname mdns4_minimal [NOTFOUND=return] resolve dns [!UNAVAIL=return]

затем запустил sudo authselect apply-changes как сказано в руководстве, неудачно.

Не могу найти ничего для решения этой проблемы.
Буду очень благодарен за любую помощь.
Спасибо!

На Fedora 38 это /etc/authselect/nsswitch.conf вместо /etc/authselect/user-nsswitch.conf, и его содержимое такое же, как и у обычного /etc/nsswitch.conf.
Затем authselect apply-change сгенерирует /etc/nsswitch.conf

Ответ/принятое решение: модификация /etc/authselect/nsswitch.conf – от @admstg не сработала для меня, изменения были перезаписаны после вызова authselect apply-changes, потому что authselect current “указывает на” sssd, и поэтому я должен был выполнить изменения в /usr/share/authselect/default/sssd/nsswitch.conf, и всё было хорошо.

.

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

Когда дело доходит до изменения конфигурации системы и обеспечения устойчивости этих изменений, особенно в таких системах, как Fedora 38 KDE Spin, важно понимать, как система управляет определёнными конфигурационными файлами. В этом случае мы имеем дело с файлом nsswitch.conf, который управляется посредством инструмента authselect.

Теория

nsswitch.conf — это конфигурационный файл, который определяет порядок и метод разрешения различных записей, таких как хосты, пользователи, группы и т. д. В частности, для разрешения доменных имён, он определяет порядок использования локальных файлов, системных служб и DNS.

По умолчанию, ваша конфигурация для секции hosts выглядит так:

hosts:      files myhostname resolve [!UNAVAIL=return] dns

Вы обнаружили, что для правильной работы в вашей сети, к которой вы подключаетесь через VPN, необходимо использовать DNS-записи.
Вы изменили секцию hosts следующим способом:

hosts:      files myhostname resolve dns [!UNAVAIL=return]

Однако все изменения в /etc/nsswitch.conf перезаписываются, так как этот файл управляется authselect. Инструмент authselect предназначен для управления аутентификацией и связанными конфигурациями, и он автоматически генерирует nsswitch.conf из предустановленных профилей, которые хранится в /usr/share/authselect/default/.

Пример

Ваша первоначальная попытка создать /etc/authselect/user-nsswitch.conf и внести в него изменения не увенчалась успехом, так как это не поддерживается в Fedora 38. Основной причиной этого является карантин всех пользовательских настроек в одном из профилей authselect, таких как sssd.

Вот что стоит сделать в вашем случае:

  1. Определите, какой профиль authselect используется, выполнив следующую команду:

    authselect current

    Это вернёт профиль, который в настоящее время активен, например, sssd.

  2. Перейдите в каталог с профилем. Обычно он находится по адресу:

    /usr/share/authselect/default/ИМЯ_ПРОФИЛЯ/nsswitch.conf

    Например, для профиля sssd, вы найдёте файл nsswitch.conf в /usr/share/authselect/default/sssd/.

  3. Отредактируйте файл nsswitch.conf в этой директории:

    sudo nano /usr/share/authselect/default/sssd/nsswitch.conf

    Внесите туда ваши изменения в секцию hosts, например:

    hosts:      files myhostname resolve dns [!UNAVAIL=return]
  4. После внесения изменений, примените их с помощью authselect:

    sudo authselect apply-changes

Этот процесс гарантирует, что ваши изменения nsswitch.conf будут сохранены и применены правильно, без рискa их потери при рестарте системы или повторном применении authselect.

Применение

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

Этот метод не только подтверждает техническую грамотность в управлении конфигурацией системы, но и подчеркивает способность адаптироваться к специфике различных дистрибутивов Linux, таких как Fedora. Расширение знаний в этой области может стать ценным активом в контексте корпоративной ИТ-инфраструктуры, где правильная настройка системы влияет на доступность и безопасность сети.

Если вы столкнетесь с подобными проблемами в будущем или переключитесь на другой профиль authselect, аналогичный процесс можно будет повторить, чтобы обеспечить устойчивость всех необходимых изменений конфигурации.

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

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