Я обновил Ubuntu 16.04 до Ubuntu 18.04. На данный момент я не собираюсь делать дальнейшее обновление до Ubuntu 20.xx. Похоже, все прошло хорошо, за исключением переключения пользователей из среды рабочего стола. Моей средой рабочего стола была и есть Unity.
На этом компьютере два пользователя. Ожидаемое поведение заключается в том, что в среде рабочего стола я могу переключиться на любой другой профиль, не выходя из текущего, как в многопользовательской системе. На самом деле мне всегда приходится выходить из одного профиля, чтобы войти в другой.
То, что ниже, происходит всегда, независимо от того, какой профиль находится первым.
1 Сразу после обновления
1.1 Проблема
Ситуация сразу после обновления была такой:
- Я вхожу в оба профиля рабочего стола по отдельности: PASS.
- Когда я нахожусь в одном из профилей и нажимаю меню, чтобы получить доступ к другому, ничего такого происходит: НЕУДАЧА.
Поэтому я остаюсь на месте.
Мне нужно полностью выйти из системы, чтобы получить доступ к другому профилю.
1.2 Частичное исправление
Я последовал предложению переустановить среду рабочего стола с помощью
sudo apt удалить lightdm
sudo apt установить lightdm
судо перезагрузка
Это решило проблему лишь частично.
- Я могу войти в любой профиль отдельно: PASS, OLD.
- Если я нажму на меню внутри профиля, чтобы получить доступ к любому другому профилю, что-нибудь случается: мне дарят экран входа в систему с вводом пароля: PASS, NEW.
- Разрешение экрана входа в систему, где вводится пароль, довольно грубое: FAIL, NEW.
- После того, как я ввожу пароль другого профиля, он зависает на несколько секунд, прежде чем вернуться к экрану входа в систему.
- Поэтому я не могу получить доступ к другому профилю пользователя: FAIL, NEW.
- Однако я могу снова войти в предыдущий профиль.
Другие действия, такие как
sudo apt установить ubuntu-единство-рабочий стол
или же
sudo dpkg-перенастроить lightdm
не действуют или являются избыточными. Действительно, одна и та же проблема возникает независимо от того, является ли среда рабочего стола Unity или Ubuntu.
2 Текущая ситуация
2.1 Тесты из терминала
Я могу войти в оба профиля от терминала. После того, как я нахожусь в среде рабочего стола профиля A, я перехожу к tty-терминалу и вхожу в профиль B.
При первом входе в систему перед приглашением появляется системное сообщение
Не удалось найти ключ с описанием: [ПОДПИСЬ]
Не удалось найти process_request_key_err в наборе ключей сеанса пользователя для указанного сигнала
Опция парсинга ошибок; rc = [-2]
Оба теста keyctl показать
и лс
pass: так что я МОГУ увидеть связку ключей сеанса (сообщение о не найденном выше - ерунда) и содержимое каталога (сообщение выше не имеет значения).
Выхожу и снова захожу. Перед приглашением есть еще одно сообщение
Подпись не найдена в связке ключей пользователя
Возможно, попробуйте интерактивный 'ecryptfs-mount-private'
Тест keyctl показать
терпит неудачу (сообщение о не найденном выше соответствует) и лс
проходит (сообщение выше остается несущественным). Даже если я попытаюсь ecryptfs-mount-private
, я загружаю ключ, проблема с переключением пользователей сохраняется, и эти сообщения появляются снова при следующей перезагрузке.
Иногда эти сообщения вообще не появляются (так что в терминале все нормально), но проблема с переключением учетных записей в среде рабочего стола остается.
В терминале я могу видеть и просматривать содержимое домашних каталогов. Во всех случаях нет блокировки из-за шифрования.
2.2 Из среды рабочего стола
- Если я выйду из среды рабочего стола профиля A и начну заново, экран входа в систему с вводом пароля будет отображаться аккуратно (без грубого разрешения). Я могу войти в профиль B.
- Когда я пытаюсь переключиться с профиля A на B и оставляю среду рабочего стола профиля A без выхода из системы, я всегда могу вернуться к профилю A, введя пароль пользователя.То есть: это происходит так, как я ожидаю, будет работать и для активации профиля B.
- Если я создам нового пользователя C с правами администратора (предложение @matigo), произойдет следующее:
- Я не могу переключиться с А и В на С точно так же, как не мог бы между А и В;
- Я также не могу войти в только что созданный 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 что я мог бы использовать:
- исходный код: https://github.com/KDE/kwallet-pam/blob/master/pam_kwallet.c
- жалоба: https://forums.gentoo.org/viewtopic-p-8220820.html
- отчет об ошибке: 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
Это смещает акцент с лайтдм
и кошелек
к состав
и шифрование файлов
. Эти ресурсы применяются:
4. Вопрос
Следовательно, проблема, по-видимому, заключается исключительно в управлении переключением с любого первого текущего профиля на любой другой профиль в среде рабочего стола.
По сути, мне всегда приходится выходить из одного профиля, чтобы войти в другой. Так что никакого многопользовательского поведения.
Любые предложения, чтобы исправить это?