Вопрос или проблема
У меня установлена 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
.
Вот что стоит сделать в вашем случае:
-
Определите, какой профиль
authselect
используется, выполнив следующую команду:authselect current
Это вернёт профиль, который в настоящее время активен, например,
sssd
. -
Перейдите в каталог с профилем. Обычно он находится по адресу:
/usr/share/authselect/default/ИМЯ_ПРОФИЛЯ/nsswitch.conf
Например, для профиля
sssd
, вы найдёте файлnsswitch.conf
в/usr/share/authselect/default/sssd/
. -
Отредактируйте файл
nsswitch.conf
в этой директории:sudo nano /usr/share/authselect/default/sssd/nsswitch.conf
Внесите туда ваши изменения в секцию
hosts
, например:hosts: files myhostname resolve dns [!UNAVAIL=return]
-
После внесения изменений, примените их с помощью
authselect
:sudo authselect apply-changes
Этот процесс гарантирует, что ваши изменения nsswitch.conf
будут сохранены и применены правильно, без рискa их потери при рестарте системы или повторном применении authselect
.
Применение
Ваше успешное использование этого подхода обеспечит правильную резолюцию DNS внутри вашей корпоративной VPN, что критично для доступа к необходимым ресурсам в .local зоне. Это также демонстрирует, как важно разбираться в том, какой инструмент управления конфигурацией используется в системе, и как его правильно использовать для достижения устойчивых результатов.
Этот метод не только подтверждает техническую грамотность в управлении конфигурацией системы, но и подчеркивает способность адаптироваться к специфике различных дистрибутивов Linux, таких как Fedora. Расширение знаний в этой области может стать ценным активом в контексте корпоративной ИТ-инфраструктуры, где правильная настройка системы влияет на доступность и безопасность сети.
Если вы столкнетесь с подобными проблемами в будущем или переключитесь на другой профиль authselect
, аналогичный процесс можно будет повторить, чтобы обеспечить устойчивость всех необходимых изменений конфигурации.