При использовании клиента NIS в Ubuntu 18.04 происходит сбой как Gnome, так и Unity
Я запускаю NIS-клиенты на рабочем столе Ubuntu в наших студенческих лабораториях. В рамках нашего летнего проекта я установил Ubuntu 18.04 на один ПК и установил на него клиент NIS. Все вроде нормально, домен верный, ypwhich, ypcat а также yptest все работают успешно.
Однако, когда я вхожу в систему, используя учетную запись NIS (либо с локальным домом, либо с домом NFS), и GDM, и LightDM (я пробовал оба) зависают, и в конце концов X падает. Прекрасно работает с локальной учетной записью и домашним каталогом.
Журнал ошибок показывает только это сообщение:
pam_systemd(sshd:session): failed to create session
Если я пытаюсь использовать тот же логин NIS, используя только терминал (Ctrl+Alt+F1), я могу аутентифицироваться, однако сессия останавливается примерно на 25 секунд, прежде чем дать мне оболочку bash, домашний каталог, будь то локальный или NFS, смонтирован правильно. Это сработало. для меня нормально в Ubuntu 16.04 в конце концов. (Мне пришлось добавить следующую строку, чтобы запустить systemd rpc.bind: /bin/systemctl add-wants multi-user.target rpcbind.service.) Я попробовал это с Ubuntu 18.04 безуспешно. Похоже, что есть задержка между аутентификацией и созданием сеанса, который вызывает эту проблему. Я скачал и установил последние обновления и т. Д. И последние apt-get его и т. д.
Спасибо за ответы. Я попытался установить lightdm и добился небольшого успеха при входе в систему в качестве пользователя NIS в X. Однако я обнаружил, что для меня это непоследовательно, иногда вход в X, иногда тайм-аут, поэтому его нельзя использовать в лабораторных условиях. Я переустановил 16.04 снова, и это работало нормально, так что собирался оставить это до 18.04 коек немного. После этого Пауло я только что увидел ваш ответ! Я посмотрю на переустановку 18.04 и вернусь Ура
Пробовал Паулос, как указано выше. К сожалению, я не смог отобразить те же установочные файлы в Ubuntu 18.04 (то есть не смог найти /etc/systemd/system/systemd-login.service.d или /usr/lib/systemd/system/systemd-logind.service. Смотря дальше, я нашел /etc/system/logind.conf. Я попытался поместить туда оператор IPAddressAllow (там не было упоминания или не было никакого значения по умолчанию), но он не был распознан. Также безуспешно пытался вставить свой собственный файл.conf в тот же каталог. очень похоже на те же симптомы, или это может быть мое отсутствие знаний здесь. Я еще раз посмотрю еще раз, но на данный момент надеюсь, что Ubuntu может выпустить обновление или патч в ближайшее время, чтобы решить эту проблему
6 ответов
Это меня тоже затронуло, и сначала я решил эту проблему, комментируя
IPAdressDeny=Any в /lib/systemd/system/systemd-logind.service
как и многие другие, упомянутые здесь ранее.
Однако, помимо того, что это угроза безопасности, это будет работать только до следующего обновления systemd toolchain, как упоминалось в Arch-Wiki. Вики не очень хорошо объясняет, как расширить конфигурацию systemd-logind.service таким образом, чтобы определенный диапазон адресов был внесен в белый список, и чтобы эти настройки выдержали обновление. После некоторого прочтения документации RHEL (особенно раздела 10.6.4: Изменение существующих файлов модулей), у меня сработало следующее решение:
Создать новый каталог в
/etc/systemd/system/назван точно в честь службы, которую вы хотите расширить, включая.dвот это будет:systemd-logind.service.dСоздать новый файл
choose_an_appropriate_name.conf(например, nis_open_network_interface.conf) во вновь созданном каталоге со следующим содержимым, в котором указывается диапазон IP или IP-адресов, который вы хотите разрешить:[Service] IPAddressAllow=10.10.0.0/16Сделать
systemctl daemon-reload- И проверьте, является ли новая конфигурация частью вашего модуля systemd-logind.service, используя
systemctl cat systemd-logind.service - Наконец перезапустите сервис
systemctl restart systemd-logind.service(Это исключит вас из сеанса работы с gnome, и вам придется снова войти в систему.)
Нет необходимости изменять любой другой файл! В этот момент вы сможете снова войти в систему с NIS-пользователями, не останавливая систему. Однако следует помнить, что это все еще считается небезопасным (внесение в белый список IP-адресов) и что требуется системное поведение systemd-logind. NIS/YP отчасти устарели, но я до сих пор нахожу его используемым очень часто. Также может быть лучшее решение этой проблемы с использованием демона кэширования имен с использованием nscd или sssd, как упоминалось в этой проблеме systemd github, касающейся всей ситуации. Но это вне моей компетенции на данный момент.
В этом ответе собраны все фрагменты из предыдущих постов, и я надеюсь, что пояснения немного помогут найти хорошее решение проблемы.
ура
В Ubuntu 18.04 LTS вы сможете исправить проблему, просто убрав строку
IPAddressDeny=any
от /lib/systemd/system/systemd-logind.service
Это, похоже, не ваш случай, учитывая то, что вы описали, но имейте в виду, что у вас должен быть домашний каталог для пользователя NIS, к которому вы пытаетесь подключиться, этот пользователь должен иметь разрешение на чтение / запись для этого каталога, и это когда-нибудь это может занять некоторое время для подключения к серверу NIS.
Я могу подтвердить, что второе решение, о котором упоминает Том, теперь прекрасно работает и для меня (не заметил неправильный путь - спасибо). Я также попробовал первое решение, но опять-таки оно не работает для меня. Я также случайно заметил, что файл /etc/systemd/system.conf имеет
IPAddressAllow= (запись закомментирована)
Я попытался вставить свои записи внутренней сети, т.е. (например, 10.0.0.0/16), но, похоже, это не сработало. Я системный новичок (выходит из Ubuntu 14.04). На данный момент решение 2 является идеальным, и я могу работать с обновлениями и т. Д., Но я еще раз посмотрю на вариант 1, если позволит время, или кто-то может взломать это. Спасибо миллион за помощь, ребята
У меня была похожая проблема, я обновился с 17.10 до 18.04. Несмотря на то, что я мог войти в систему с локальным пользователем, сеанс длился не так долго до перезапуска. Я не мог войти с моим пользователем nis без перезапуска графического интерфейса.
Переключив диспетчер дисплея на lightdm, я смог обойти эту проблему.
sudo apt install lightdm
sudo dpkg-reconfigure gdm3
Затем выберите lightdm в качестве менеджера. Перезапустите, и я смог войти с моим пользователем NIS.
Это не решает время, необходимое для входа в систему, но позволяет мне получить доступ к графическому интерфейсу.
Из сообщения в проблеме systemd github, которое Wiggles упомянул в своем ответе, просто установите nscd, а затем перезагрузитесь. Это исправило это для меня.
Я попробовал совет Паулоса, но существуют разные проблемы с описанным обходом, когда вы переходите по ссылке.
Второе решение у меня получилось. У них просто неверный путь для Ubuntu, файл здесь:
/lib/systemd/system/systemd-logind.service
Я только что закомментировал эту строку:
# IPAddressDeny=any
и после перезагрузки все заработало.
Первое решение кажется лучшим, но я обнаружил различные проблемы с ним и не могу получить правильный синтаксис. Начать с неправильного имени, это недопустимое имя, тогда это должна быть символическая ссылка, а не реальный файл. Я дошел до создания
/lib/systemd/system/open_nis_interface.service
и заполняя его:
[Service]
IPAddressAllow=10.0.0.0/16
затем ссылки:
mkdir /etc/systemd/system/systemd-logind.service.wants/
ln -s /lib/systemd/system/open_nis_interface.service /etc/systemd/system/systemd-logind.service.wants/
У меня есть загрузка файла, но мой синтаксис не совсем правильный. systemd выдает нормальные сообщения, если вы запускаете:
dmesg | grep systemd
Как я уже сказал, у меня работает второй способ переопределения системного файла, возможно, кто-то может закончить первый метод, который кажется лучшим долгосрочным решением.
Том
Я столкнулся с той же проблемой в лаборатории, которую я настраиваю для своих учеников. Моё решение было использовать 17.10 клиентов. Они работают, даже если сервер 18.04.
Но теперь, когда я вернулся домой, я только что нашел очень интересный комментарий на Arch Linux wiki. Это привлекает внимание к изменениям в systemd, которые произошли 10/2017. Похоже, это проблема. Они также предлагают решение, основанное на "Это можно сделать, создав новый файл.conf в /etc/systemd/system/systemd-logind.service.d/", который вносит в белый список сервер NIS. Я смогу попробовать это только в понедельник, когда вернусь на работу (или я не буду сопротивляться и попробую по ssh). Но если у вас есть доступ к вашей системе, вы можете попробовать и доложить.