Рейтинг:5

Ubuntu 18.04 не переключается между пользователями после обновления

флаг cn

Я обновил Ubuntu 16.04 до Ubuntu 18.04. На данный момент я не собираюсь делать дальнейшее обновление до Ubuntu 20.xx. Похоже, все прошло хорошо, за исключением переключения пользователей из среды рабочего стола. Моей средой рабочего стола была и есть Unity.

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

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


1 Сразу после обновления

1.1 Проблема

Ситуация сразу после обновления была такой:

  1. Я вхожу в оба профиля рабочего стола по отдельности: PASS.
  2. Когда я нахожусь в одном из профилей и нажимаю меню, чтобы получить доступ к другому, ничего такого происходит: НЕУДАЧА.

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

1.2 Частичное исправление

Я последовал предложению переустановить среду рабочего стола с помощью

sudo apt удалить lightdm
sudo apt установить lightdm
судо перезагрузка

Это решило проблему лишь частично.

  1. Я могу войти в любой профиль отдельно: PASS, OLD.
  2. Если я нажму на меню внутри профиля, чтобы получить доступ к любому другому профилю, что-нибудь случается: мне дарят экран входа в систему с вводом пароля: PASS, NEW.
  3. Разрешение экрана входа в систему, где вводится пароль, довольно грубое: FAIL, NEW.
  4. После того, как я ввожу пароль другого профиля, он зависает на несколько секунд, прежде чем вернуться к экрану входа в систему.
    1. Поэтому я не могу получить доступ к другому профилю пользователя: FAIL, NEW.
    2. Однако я могу снова войти в предыдущий профиль.

Другие действия, такие как

sudo apt установить ubuntu-единство-рабочий стол

или же

sudo dpkg-перенастроить lightdm

не действуют или являются избыточными. Действительно, одна и та же проблема возникает независимо от того, является ли среда рабочего стола Unity или Ubuntu.


2 Текущая ситуация

2.1 Тесты из терминала

Я могу войти в оба профиля от терминала. После того, как я нахожусь в среде рабочего стола профиля A, я перехожу к tty-терминалу и вхожу в профиль B.

  1. При первом входе в систему перед приглашением появляется системное сообщение

         Не удалось найти ключ с описанием: [ПОДПИСЬ]
         Не удалось найти process_request_key_err в наборе ключей сеанса пользователя для указанного сигнала
         Опция парсинга ошибок; rc = [-2]
    

    Оба теста keyctl показать и лс pass: так что я МОГУ увидеть связку ключей сеанса (сообщение о не найденном выше - ерунда) и содержимое каталога (сообщение выше не имеет значения).

  2. Выхожу и снова захожу. Перед приглашением есть еще одно сообщение

         Подпись не найдена в связке ключей пользователя
         Возможно, попробуйте интерактивный 'ecryptfs-mount-private'
    

    Тест keyctl показать терпит неудачу (сообщение о не найденном выше соответствует) и лс проходит (сообщение выше остается несущественным). Даже если я попытаюсь ecryptfs-mount-private, я загружаю ключ, проблема с переключением пользователей сохраняется, и эти сообщения появляются снова при следующей перезагрузке.

  3. Иногда эти сообщения вообще не появляются (так что в терминале все нормально), но проблема с переключением учетных записей в среде рабочего стола остается.

В терминале я могу видеть и просматривать содержимое домашних каталогов. Во всех случаях нет блокировки из-за шифрования.

2.2 Из среды рабочего стола

  1. Если я выйду из среды рабочего стола профиля A и начну заново, экран входа в систему с вводом пароля будет отображаться аккуратно (без грубого разрешения). Я могу войти в профиль B.
  2. Когда я пытаюсь переключиться с профиля A на B и оставляю среду рабочего стола профиля A без выхода из системы, я всегда могу вернуться к профилю A, введя пароль пользователя.То есть: это происходит так, как я ожидаю, будет работать и для активации профиля B.
  3. Если я создам нового пользователя C с правами администратора (предложение @matigo), произойдет следующее:
    1. Я не могу переключиться с А и В на С точно так же, как не мог бы между А и В;
    2. Я также не могу войти в только что созданный C с экрана входа: экран приветствия возвращается к себе. Последнее происходит независимо от того, установил ли я пароль для пользователя C, так что это не человеческая ошибка.

2.3 Другие посты

Я просмотрел эти другие сообщения, которые относятся к более старым выпускам Ubuntu.


3. Анализ ошибок в журналctl

Это следует за предложение лемрма. Это моя ситуация:

wmctrl -m
Имя: Компиз
Класс: Н/Д
PID: нет данных
Режим «показ рабочего стола» оконного менеджера: ВЫКЛ.

эхо $DESKTOP_SESSION 
единство

эхо $GDMSESSION
единство

эхо $XDG_CURRENT_DESKTOP
Единство: Единство 7: убунту

3.1 Без libpam-kwallet*

Команда журналctl -p err -b возвращает среди прочего следующие интересные строки на лайтдм:

10 декабря 21:33:59 компьютер lightdm[3992]: PAM не может dlopen(pam_kwallet.so): /lib/security/pam_kwalle
10 декабря 21:33:59 компьютер lightdm[3992]: PAM добавляет неисправный модуль: pam_kwallet.so
10 декабря 21:33:59 компьютер lightdm[3992]: PAM не может dlopen(pam_kwallet5.so): /lib/security/pam_kwall
10 декабря 21:33:59 компьютер lightdm[3992]: PAM добавляет неисправный модуль: pam_kwallet5.so
10 декабря 21:33:59 компьютер lightdm[3992]: pam_unix(lightdm:auth): сбой разговора
10 декабря 21:33:59 компьютер lightdm[3992]: pam_unix(lightdm:auth): авторизация не может определить пароль для ...

Я нашел эти ресурсы

Библиотеки pam_kwallet.so и pam_kwallet5.so относятся к пакетам

которые отсутствуют в моей системе. Я их устанавливаю.

Интересное отличие состоит в том, что при выходе на другой профиль через меню я вылетаю не снова в грифер с выбором профилей, а на страницу "повторного входа" текущего профиля (как будто нажал Ctrl + L). Мне все еще нужно выйти из системы, чтобы найти способ войти в другой профиль. Я могу вернуться только к тому профилю, в котором был.

3.2 С libpam-kwallet*

Линии журналctl -p err -b касательно лайтдм стать:

10 декабря 22:16:23 компьютер lightdm[1766]: pam_kwallet(lightdm:session): pam_kwallet: Невозможно записать walletKey в walletPipe
10 декабря 22:16:23 компьютер lightdm[1767]: pam_kwallet5(lightdm:session): pam_kwallet5: Невозможно записать walletKey в walletPipe

Я не нашел много по этому поводу Невозможно записать walletKey в walletPipe что я мог бы использовать:

  1. исходный код: https://github.com/KDE/kwallet-pam/blob/master/pam_kwallet.c
  2. жалоба: https://forums.gentoo.org/viewtopic-p-8220820.html
  3. отчет об ошибке: https://bugs.launchpad.net/lightdm/+bug/1781418

3.3 pam_ecryptfs

После того, как я пытаюсь изменить пользователя из меню, согласно 3.1, журнал добавляет еще одну строку к сообщениям в 3.2.

10 декабря 23:28:11 компьютер compiz[2490]: pam_ecryptfs: ошибка seteuid

после чего я проверяю, что:

dpkg -S pam_ecryptfs
ecryptfs-utils: /usr/share/man/man8/pam_ecryptfs.8.gz
ecryptfs-utils: /lib/security/pam_ecryptfs.so

Это смещает акцент с лайтдм и кошелек к состав и шифрование файлов. Эти ресурсы применяются:

  • https://bugs.launchpad.net/ecryptfs/+bug/1085706 (подтвержденная и неназначенная ошибка, впервые зарегистрированная в 2012 г. и последняя зарегистрированная в 2021 г.)

4. Вопрос

Следовательно, проблема, по-видимому, заключается исключительно в управлении переключением с любого первого текущего профиля на любой другой профиль в среде рабочего стола.

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

Любые предложения, чтобы исправить это?

флаг in
Если вы создадите новую учетную запись (для проверки), сможете ли вы успешно переключиться на эту учетную запись? Мне интересно, есть ли в каталоге `/home` для существующих пользователей какой-то беспорядок, который нужно разобрать...
XavierStuvw avatar
флаг cn
@matigo Хороший вопрос. Если я создаю нового пользователя C с правами администратора, происходит следующее: 1) я не могу переключиться с A и B на C точно так же, как не мог между A и B; 2) **интересно**, я тоже не могу войти в C: экран приветствия возвращается в себя. Последнее происходит независимо от того, установил ли я пароль для пользователя C, так что это не человеческая ошибка. Я включил это доказательство в пост 2.2.3.
Рейтинг:1
флаг th

Такое поведение может быть связано с гном-сеанс <-> среда рабочего стола <-> оконный менеджер

  1. Протестируйте новую учетную запись (C) с открытым новым терминалом, Ctrl+альтернативный+F3, войдите в систему с указанными учетными данными и startx

  2. Проверьте журналы ошибок с помощью журналctl -p err -b и, возможно, разместить в пастобин.

3. Проверьте, не пропало ли что-то, т.е. дпкг -л | grep '^ii' | grep гном-с.

  1. Проверьте текущую среду (глянь сюда)

    • Оконный менеджер: wmctrl -m
    • Сессия: эхо $DESKTOP_SESSION
    • Окружение рабочего стола: эхо $XDG_CURRENT_DESKTOP

    Для меня это т.е. GNOME-Shell ubuntu-xorg Ubuntu-GNOME, устанавливается после dist-upgrade путем установки или переустановки

    sudo apt установить gnome-session gnome-shell ubuntu-desktop-minimal

  2. Решите шифрование файлов проблемы, см. этот ответ

  3. Возможность удалить состав, видеть здесь (должно работать таким же образом в 18.04)

  4. После этих шагов может быть полезно сделать sudo apt полное обновление

XavierStuvw avatar
флаг cn
Спасибо за предложения. Действия в среде Windows и сеансе не принесли никаких полезных изменений. Однако анализ journalctl показал, что у lightdm есть проблемы с инструментом kwallet. Возможно, это спящий баг. Я добавил новые доказательства в вопрос в новом Разделе 3.
lemrm avatar
флаг th
Является ли `kwallet` `kde`? Зачем смешивать `gnome` и `kde`? В "гноме" есть "морской конек".
XavierStuvw avatar
флаг cn
Не знаю. Если вы считаете, что это критично, и у вас есть план решения, я буду более чем счастлив попробовать этот путь. У меня «есть 10 часов, чтобы присудить эту награду за подходящий ответ» BTW
lemrm avatar
флаг th
... может быть, это решение ( https://askubuntu.com/questions/79636/how-to-remove-all-traces-of-kde-installed ), и вы думали о переносе своего профиля на новый?
lemrm avatar
флаг th
... возможно, попробуйте начать с нового созданного пользователя-администратора и помните, что все пользователи находятся в одной среде рабочего стола.
XavierStuvw avatar
флаг cn
Если я создаю новый профиль, я не могу даже войти в него (см. раздел 2.2.3); миграция звучит как выстрел в темноте и даже как назойливость. Если мне не изменяет память, я никогда не устанавливал kubuntu или что-то подобное, что могло бы повлиять на среду рабочего стола; `dpkg -l | grep -i kub` все равно возвращает ноль совпадений. Проблема возникает независимо от того, использую ли я среду рабочего стола gdm или unity (раздел 1.2). Спасибо за спарринг, ценю. Я посмотрю, появятся ли новые ответы.
lemrm avatar
флаг th
Я улучшил ответ в (1.). Это возможно?
lemrm avatar
флаг th
Если это так, пожалуйста, перейдите к следующим шагам. Возможно, удалите «kwallet», установите «морской конек» и выполните «sudo apt full-upgrade».
lemrm avatar
флаг th
Также, возможно, удалите `compiz` и замените его, например, `gnome-shell`
lemrm avatar
флаг th
Это была моя проблема с «18.04» для обновления до 21.10. Потому что не будет исправлено в `18.04` -> https://bugs.launchpad.net/ubuntu/+source/nautilus/+bug/1820859
XavierStuvw avatar
флаг cn
Давайте [продолжим это обсуждение в чате](https://chat.stackexchange.com/rooms/132244/discussion-between-xavierstuvw-and-lemrm).

Ответить или комментировать

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