Puncte:5

Ubuntu 18.04 nu comută între utilizatori după actualizare

drapel cn

Am actualizat Ubuntu 16.04 la Ubuntu 18.04. Nu intenționez să fac un nou upgrade la Ubuntu 20.xx pentru moment. Totul pare să fi mers bine, cu excepția trecerii utilizatorilor din mediul desktop. Mediul meu desktop a fost și este Unity.

Există doi utilizatori în acest computer. Comportamentul așteptat este că în mediul desktop pot trece la orice alt profil fără să mă deconectez de la cel actual, ca într-un sistem multi-utilizator. De fapt, trebuie întotdeauna să mă deconectez de la un profil pentru a mă conecta la celălalt.

Ceea ce este mai jos se întâmplă întotdeauna, indiferent de care profil este primul.


1 Imediat după upgrade

1.1 Problemă

Situația imediat după upgrade a fost:

  1. Mă conectez la ambele profiluri de desktop separat: PASS.
  2. Odată ce mă aflu în oricare profil și dau clic pe meniu pentru a accesa celălalt, nimic se întâmplă: FAIL.

Așa că rămân unde sunt. Trebuie să mă deconectez complet pentru a accesa celălalt profil.

1.2 Remediere parțială

Am urmat sugestia de a reinstala mediul desktop cu

sudo apt remove lightdm
sudo apt install lightdm
sudo reboot

Acest lucru a rezolvat problema doar parțial.

  1. Mă pot autentifica în oricare dintre profiluri separat: PASS, OLD.
  2. Dacă dau clic pe meniul din interiorul unui profil pentru a accesa orice alt profil, ceva se întâmplă: mi se prezintă ecran de conectare cu introducerea parolei: PASS, NEW.
  3. Rezoluția ecranului de autentificare în care se introduce parola este destul de grosieră: FAIL, NEW.
  4. După ce introduc parola celuilalt profil, aceasta se blochează câteva secunde înainte de a reveni în ecranul de conectare.
    1. Prin urmare, nu pot accesa celălalt profil de utilizator: FAIL, NEW.
    2. Cu toate acestea, mă pot conecta din nou la profilul anterior.

Alte acțiuni precum

sudo apt install ubuntu-unity-desktop

sau

sudo dpkg-reconfigure lightdm

nu au efect sau sunt redundante. Într-adevăr, aceeași problemă apare indiferent dacă mediul desktop este Unity sau Ubuntu.


2 Situația actuală

2.1 Teste de la terminal

Mă pot conecta la ambele profiluri de la terminal. După ce mă aflu în mediul desktop al profilului A, mă deplasez la un terminal tty și mă conectez la profilul B.

  1. La prima conectare, înainte de solicitare mesajul de sistem este

         Nu s-a putut găsi cheia cu descrierea: [SEMNATURA]
         Nu s-a putut găsi process_request_key_err în sesiunea de chei al utilizatorului pentru semnul specificat
         Opțiune de analizare a erorilor; rc = [-2]
    

    Ambele teste arată keyctl și ls trece: așa că POT să văd breloul de chei de sesiune (mesajul negăsit de mai sus este un nonsens) și conținutul directorului (mesajul de mai sus este imaterial).

  2. Ies și mă autent din nou. Înainte de solicitare există un alt mesaj

         Semnătura nu a fost găsită în breloul de chei al utilizatorului
         Poate încercați interactivul „ecryptfs-mount-private”
    

    Testul arată keyctl eșuează (mesajul negăsit de mai sus este consistent) și ls trece (mesajul de mai sus rămâne imaterial). Chiar dacă încerc ecryptfs-mount-private, încarc cheia, problema comutării utilizatorului persistă și aceste mesaje apar din nou la următoarea repornire.

  3. Uneori, aceste mesaje nu apar deloc (deci, simplă navigare în terminal), dar problema comutării conturilor în mediul desktop persistă.

În terminal pot vedea și răsfoi conținutul directoarelor de acasă. În toate cazurile, nu există blocaj din cauza criptării.

2.2 Din mediul desktop

  1. Dacă mă deconectez din mediul desktop al profilului A și încep din nou, ecranul de autentificare cu introducerea parolei este redat corect (fără rezoluție grosieră). Mă pot conecta la profilul B.
  2. Când încerc să trec de la profilul A la B și am lăsat în urmă mediul desktop al profilului A fără să mă deconectez, pot oricând să revin la profilul A tastând parola utilizatorului.Adică: merge în modul în care m-aș aștepta să funcționeze și pentru activarea profilului B.
  3. Dacă creez un nou utilizator C cu drepturi de administrator (o sugestie de @matigo), se întâmplă următoarele:
    1. Nu pot trece de la A și B la C exact în același mod cum nu aș putea între A și B;
    2. Nu mă pot conecta nici la noul C creat de pe ecranul de conectare: ecranul de întâmpinare revine la sine. Aceasta din urmă se întâmplă indiferent dacă am setat sau nu o parolă pentru utilizatorul C, deci nu este o eroare umană.

2.3 Alte postări

M-am uitat la aceste alte postări, care se referă la versiuni mai vechi ale Ubuntu


3. Analiza erorilor în jurnalctl

Aceasta urmează a sugestia lui lemrm. Aceasta este situatia mea:

wmctrl -m
Nume: Compiz
Clasa: N/A
PID: N/A
Modul „afișare desktop” al managerului de ferestre: OFF

echo $DESKTOP_SESSION 
unitate

echo $GDMSESSION
unitate

echo $XDG_CURRENT_DESKTOP
Unity:Unity7:ubuntu

3.1 Fără libpam-wallet*

Comanda journalctl -p err -b returnează printre altele următoarele rânduri interesante despre lightdm:

10 dec 21:33:59 computer lightdm[3992]: PAM nu se poate deschide dlopen(pam_kwallet.so): /lib/security/pam_kwalle
10 dec 21:33:59 computer lightdm[3992]: PAM adaugă modul defect: pam_kwallet.so
10 dec 21:33:59 computer lightdm[3992]: PAM nu se poate deschide dlopen(pam_kwallet5.so): /lib/security/pam_kwall
10 dec 21:33:59 computer lightdm[3992]: PAM adaugă modul defect: pam_kwallet5.so
10 dec 21:33:59 computer lightdm[3992]: pam_unix(lightdm:auth): conversația eșuată
10 dec 21:33:59 computer lightdm[3992]: pam_unix(lightdm:auth): auth nu a putut identifica parola pentru...

Am găsit aceste resurse

Bibliotecile pam_kwallet.so și pam_kwallet5.so aparțin pachetelor

care lipsesc în sistemul meu. Eu le instalez.

Diferența interesantă este că, atunci când trec la alt profil prin intermediul meniului, nu intru din nou în greeter cu o alegere de profiluri, ci în pagina de „reintrare” a profilului curent (ca și cum aș fi apăsat Ctrl + L). Încă trebuie să mă deconectez pentru a găsi o cale de acces la alt profil. Pot să mă întorc doar la profilul în care eram.

3.2 Cu libpam-wallet*

Liniile de journalctl -p err -b in ceea ce priveste lightdm deveni:

10 dec 22:16:23 computer lightdm[1766]: pam_kwallet(lightdm:session): pam_kwallet: Imposibil de scris walletKey în walletPipe
10 dec 22:16:23 computer lightdm[1767]: pam_kwallet5(lightdm:session): pam_kwallet5: Imposibil de scris walletKey în walletPipe

Nu am găsit prea multe despre asta Este imposibil să scrieți walletKey în walletPipe de care as putea folosi:

  1. codul sursa: https://github.com/KDE/kwallet-pam/blob/master/pam_kwallet.c
  2. o plangere: https://forums.gentoo.org/viewtopic-p-8220820.html
  3. un raport de eroare: https://bugs.launchpad.net/lightdm/+bug/1781418

3.3 pam_ecryptfs

După ce încerc să schimb utilizatorul din meniu, conform punctului 3.1, jurnalul adaugă încă o linie la mesajele din 3.2.

10 dec 23:28:11 computer compiz[2490]: pam_ecryptfs: eroare seteuid

dupa care verific ca:

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

Acest lucru schimbă atenția de la lightdm și kwallet la compiz și ecryptfs. Aceste resurse se aplică:


4. Întrebare

Prin urmare, problema pare să fie pur și simplu una de gestionare a comutării de la orice prim profil curent la orice alt profil din mediul desktop.

Practic, trebuie întotdeauna să mă deconectez de la un profil pentru a mă conecta la celălalt. Deci, nici un comportament multi-utilizator.

Ceva sugestii pentru a remedia asta?

drapel in
Dacă creați un cont nou (cu care să testați), puteți trece cu succes la acel cont? Mă întreb dacă există ceva cruft în directorul `/home` pentru utilizatorii existenți care trebuie rezolvat...
XavierStuvw avatar
drapel cn
@matigo Punct bun. Dacă creez un nou utilizator C cu drepturi de administrator se întâmplă următoarele: 1) Nu pot trece de la A și B la C exact în același mod în care nu aș putea între A și B; 2) **interesant**, nu mă pot conecta nici în C: ecranul de întâmpinare revine la sine. Aceasta din urmă se întâmplă indiferent dacă am setat sau nu o parolă pentru utilizatorul C, deci nu este o eroare umană. Am inclus aceste dovezi în postarea de la 2.2.3.
Puncte:1
drapel th

Acest comportament ar putea fi legat de gnome-sesiune <-> mediu desktop <-> windowmanager

  1. Testați noul cont (C) cu open new tty by ctrl+alt+F3, conectați-vă cu acreditările date și startx

  2. Verificați jurnalele de erori cu journalctl -p err -b și poate postați la pastebin.

3. Verificați dacă lipsește ceva de ex. dpkg -l | grep '^ii' | grep gnome-s.

  1. Verificați mediul dvs. actual prin (Vezi aici)

    • Manager de ferestre: wmctrl -m
    • Sesiune: echo $DESKTOP_SESSION
    • Mediu desktop: echo $XDG_CURRENT_DESKTOP

    Pentru mine este i.e. GNOME-Shell ubuntu-xorg ubuntu-GNOME, instalat după dist-upgrade prin instalare sau reinstalare

    sudo apt install gnome-session gnome-shell ubuntu-desktop-minimal

  2. Rezolvă ecryptfs probleme, vezi acest raspuns

  3. Opțiune de eliminare compiz, vedea Aici (ar trebui să funcționeze în același mod în 18.04)

  4. După acești pași, poate este util să faceți a sudo apt upgrade complet

XavierStuvw avatar
drapel cn
Mulțumesc pentru sugestii. Acțiunile din mediul Windows și sesiunea nu au adus nicio modificare utilă. Cu toate acestea, analiza lui `journalctl` a evidențiat că `lightdm` are probleme cu instrumentul `kwallet`. Acesta este posibil un bug latent. Am adăugat noile dovezi în întrebare, într-o nouă Secțiune 3.
lemrm avatar
drapel th
Este `kwallet` `kde`? De ce să amesteci `gnome` și `kde`? Există `caluți de mare` la `gnome`.
XavierStuvw avatar
drapel cn
nu stiu. Dacă credeți că acest lucru este esențial și aveți un plan pentru o soluție, voi încerca mai mult decât cu plăcere această cale. „Am 10 ore pentru a acorda această recompensă unui răspuns eligibil” BTW
lemrm avatar
drapel th
...poate această soluție ( https://askubuntu.com/questions/79636/how-to-remove-all-traces-of-kde-installed ) și v-ați gândit să vă migrați profilul la unul nou creat?
lemrm avatar
drapel th
... poate încercați să începeți de la un nou utilizator admin creat și să fiți conștient de a avea toți utilizatorii în același mediu desktop.
XavierStuvw avatar
drapel cn
Dacă creez un profil nou, nici măcar nu mă pot conecta la el (vezi Sec. 2.2.3); migrația sună ca o lovitură în întuneric și chiar ca a cere necazuri. Dacă memoria îmi servește bine, nu am instalat niciodată kubuntu sau altele asemenea, care ar fi putut afecta mediul desktop; `dpkg -l | grep -i kub` returnează oricum zero potriviri. Problema apare indiferent dacă folosesc un mediu desktop gdm sau unity (secțiunea 1.2). Multumesc pentru sparring, apreciat. Voi vedea dacă apar răspunsuri noi.
lemrm avatar
drapel th
Am îmbunătățit răspunsul la (1.). Este posibil?
lemrm avatar
drapel th
Dacă da, vă rugăm să continuați cu pașii următori. Poate eliminați `kwallet` instalați `seahorse` și faceți `sudo apt full-upgrade`
lemrm avatar
drapel th
De asemenea, poate eliminați `compiz` și înlocuiți-l, de exemplu, cu `gnome-shell`
lemrm avatar
drapel th
Aceasta a fost problema mea cu `18.04` pentru a face upgrade la 21.10. Pentru că nu ar fi remediat în `18.04` -> https://bugs.launchpad.net/ubuntu/+source/nautilus/+bug/1820859
XavierStuvw avatar
drapel cn
Să [continuăm această discuție în chat](https://chat.stackexchange.com/rooms/132244/discussion-between-xavierstuvw-and-lemrm).

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.