GDM зависает, когда корневой каталог недоступен

Ваш лучший выбор (я думаю), вручную указал бы, какие файлы конфигурации, папки, и т.д. должны синхронизироваться. И затем действительно выполняя rsync или другую программу/инструмент синхронизации.

4
19.05.2013, 03:04
3 ответа

Проблема с/etc/gdm /*

В рассмотрении Справочника менеджера по оформлению GNOME я заметил несколько каталогов под /etc/gdm с различными сценариями и таким.

Существует несколько ссылок в этих каталогах к $HOME. Я попытался бы комментировать их, чтобы видеть, можно ли избавиться от доступа к $HOME.

Для отладки проблемы далее, я был бы склонен бросить несколько set -x строки наверху различных сценариев в этих каталогах для наблюдения, что работает до "полномочий, отклоненных" сообщения.

Сценарий в каталогах - все bash сценарии в моих системах.

/etc/gdm/custom.conf

параметр отладки

Существует параметр отладки в этом файле, который отключен по умолчанию. Попытайтесь включить его, сообщения обнаружатся в /var/log/messages.

[debug]
Enable=true

Отключите поверхности во входе в систему

Я также попытался бы отключить включение поверхностей всего пользователя при входе в систему gdm в браузере поверхности.

[greeter]
IncludeAll=false

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

Exclude=<some user>

Обновление № 1 - проблема Bugzilla

Проблема, кажется, связана с этой ошибкой, зарегистрированной против Системы отслеживания ошибок Red Hat, названной:

Нет никакого разрешения, но как часть ошибки был тест, чтобы подтвердить испытание этой ошибки.

Когда проблема обнаруживается, GDM, по-видимому, создает каталог кэша здесь: /var/run/user/42. Удаление этого каталога позволяет входу в систему GDM продолжаться. OP подтвердил это в комментариях.

Обновление № 2 - возможные обходные решения

Был 2-й комментарий (мной) к некоторым дополнительным ссылкам с предложениями для работы через проблему. Ссылка названа:

конкретно в этом разделе:

имел некоторые модификации к установке PAM, которая могла бы устранить проблему.

3
27.01.2020, 20:58
  • 1
    Это странно, но я не могу исключить ни одну из пользовательских поверхностей с Exclude хотя отладка и флаги IncludeAll работают, но не решают проблему. Отладка не показывает связанных сообщений об ошибках. Я не вижу точку в удалении ссылок $HOME как $HOME только обратится к недоступным пользовательским каталогам после того, как соответствующие пользователи уже войдут в систему. GDM зависает, прежде чем пользователи даже получают шанс войти в систему. –  d_inevitable 26.05.2013, 06:43
  • 2
    Любая удача с установкой set -x наверху сценариев в /etc/gdm? –  slm♦ 26.05.2013, 06:45
  • 3
    Также, каков сервер, с которым Вы идете вразрез для своего SSO? Linux или Windows? –  slm♦ 26.05.2013, 06:51
  • 4
    сервером является Ubuntu 12.04 –  d_inevitable 26.05.2013, 07:17
  • 5
    у меня есть взгляд на то, как получить вывод set -x. Это, кажется, не ни один из этих сценариев, выполняются, прежде чем GDM начинает зависать. –  d_inevitable 26.05.2013, 19:07

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

Я думаю, что OpenSUSE использует gdm 3.6.2, который корректен?

Две вещи я предлагаю делать:

  1. Включите отладку, регистрирующуюся согласно gdm debugsection, попытайтесь повторно выполнить gdm и затем посмотрите, существует ли что-либо полезное в Ваших системных журналах
  2. Попытайтесь отключить список пользователей согласно Простой Конфигурации Зазывалы
0
27.01.2020, 20:58
  • 1
    я попробовал 1., но не получил связанных сообщений об ошибках. Я также попробовал 2., и казалось, что SUSE действительно не поддерживает это. Попробует еще раз все же. Да, это 3.6.2. –  d_inevitable 21.05.2013, 08:40
  • 2
    Хорошо Простая конфигурация зазывалы полностью проигнорирована на OpenSUSE. Кроме того, я думаю это, если peterph прав относительно .dmrc, затем отключение списка пользователей только задержит подвешивание, пока пользователь не попытается войти в систему, как это затем попыталось бы считать предпочтение менеджера окон. –  d_inevitable 22.05.2013, 13:22

Это могло бы искать .dmrc или что-то подобное для загрузки настроек сеанса пользователя из. Для проверки присоедините к процессу gdm с strace и проверьте, какие файлы это пытается открыть (и где это зависает). Вы, вероятно, хотите использовать что-то как:

strace -f -o /path/to/logfile PID_OF_GDM

-f дети трассировок обрабатывают также, -o перенаправления регистрируются в файл (вместо этого stderr).

Если это верно, помещение файла в пользовательский каталог, прежде чем это будет смонтировано, должно устранить проблему (но пользователь не сможет изменить его).

Если не легко возможно присоединить к GDM, прежде чем это откажет, можно отредактировать средство запуска (или соответствующая systemd единица или - если Вы все еще придерживаетесь sysvinit - init сценарий).

Однако самый безопасный способ поймать его состоит в том, чтобы заменить gdm со сценарием обертки, который назвал бы исходный двоичный файл (переименованный к, например. gdm.bin). Затем, неважно, как менеджер порожден, это будет прослеженным. Вы могли бы также хотеть использовать исключительно именованный файл для вывода - просто используют $$ и/или `date --iso=ns` в сценарии обертки:

#!/bin/bash
strace -f -o /path/to/gdm-${$}-$(date --iso-8601=ns).strace \
    /path/to/original/gdm.bin
0
27.01.2020, 20:58
  • 1
    я не думаю Ваше решение, будет работать, после того как корневой каталог смонтирован, GDM не сможет получить доступ .dmrc так или иначе, если мы не можем полагаться на то, чтобы он был обмененным на деньги. Но затем SUSE перезапускает GDM, когда кто-то выходит из системы. Я проверю strace метод для наблюдения то, что действительно продолжается, но там снова PID продолжает изменяться, поскольку GDM перезапускается. –  d_inevitable 21.05.2013, 08:38
  • 2
    В первую очередь, проследите процесс gdm так, чтобы Вы знали то, что продолжается. Что касается доступа к файлу: после того как это открыто, это остается доступным для процесса, который открыл его, даже когда что-то еще смонтировано на каталоге предка - это - то, как файловые системы работают над Linux (и Unix в общем afaik). Конечно, это предпочтено, чтобы иметь тот же файл в постоянном клиенте $HOME также (и синхронизировать их). –  peterph 21.05.2013, 11:54
  • 3
    я испытываю реальные затруднения при получении чего-либо означающего полный из strace. PID продолжает изменяться, потому что при выходе из системы X11 перезапускает. По той же причине GDM должен был бы также вновь открыться .dmrc файлы. Я попробовал его, и это ничего не решает. –  d_inevitable 22.05.2013, 13:24
  • 4
    Просто поместите журнал strace где-нибудь так, чтобы кто-то мог посмотреть на него - очевидно, лучший способ состоял бы в том, чтобы наблюдать его с, например. tail -f в то время как действие происходит так, чтобы Вы видели любые возможные замораживания. Что происходит, когда Вы сначала входите в систему на консоли и получаете билет Kerberos? Это решает проблему? –  peterph 22.05.2013, 13:54
  • 5
    Это - проблема. GDM замораживается очень вскоре после того, как он запустится. Если я смонтирую каталог после того, как он уже запустился, то не заморозится. Так получение трассировки очень хитро. Получение kerberos билета сначала не помогло бы, поскольку GDM, кажется, не использует kerberized пользователя для доступа к каталогу. Это или получает доступ к нему как к корню или gdm, я думаю. –  d_inevitable 22.05.2013, 14:30

Теги

Похожие вопросы