Puncte:0

Cum să configurați butonul Hibernare pentru a nu cere parola pentru efectuarea hibernarii (pentru extensia Simpler Off Menu pentru Ubuntu 20.04)

drapel it

Am configurat hibernarea așa cum este descris Aici și instalat Meniu dezactivat mai simplu gnome-shell-extensie cu ajutorul acest instrucție. Hibernează butonul funcționează, dar de fiecare dată necesită o parolă pentru a permite hibernarea. Cum se configurează să nu ceară parola și să efectueze hibernarea imediat ca suspenda butonul efectuează suspendarea?

Puncte:0
drapel it

În Ubuntu 18,19,20 sistemul hibernează comanda cere sudo pentru executarea sa: Permisiune „systemctl suspend” vs „systemctl hibernate”.

Pentru a dezactiva solicitarea parolei systemctl hibernare comanda ar trebui adăugată la lista sudoers (/etc/sudoers.tmp) Utilizare sudo visudo comandă și adăugați la sfârșitul fișierului următoarea linie:

<nume_utilizator> ALL=NOPASSWD: /usr/bin/systemctl hibernare

Dar acum există o eroare Meniu dezactivat mai simplu extensie. Hibernarea este efectuată în ea de systemctl hibernare, nu de sudo systemctl hibernare după cum este necesar. Această implementare este în dosar [email protected]/extension.js

Am creat problema corespunzătoare pentru această extensie: Eroare în Ubuntu 20.04: apăsarea butonului [Hibernare] vă cere să introduceți parola înainte de a efectua hibernarea

Ultimul commit a fost făcut acum aproximativ 1 an. Deci extensia nu este acceptată activ.

Mai jos sunt detaliile complete despre problema cu soluția de soluție:

Comportament asteptat

Presare Hibernează se execută butonul sudo systemctl hibernare. Dacă există un utilizator adecvat în lista sudoers (/etc/sudoers.tmp editat de sudo visudo):

<nume_utilizator> ALL=NOPASSWD: /usr/bin/systemctl hibernare

acțiunea de hibernare se efectuează imediat după apăsare Hibernează buton.

Rezultat actual

Apăsarea butonului [Hibernare] vă cere să introduceți parola utilizatorului pentru a efectua autorizarea pentru acțiune. În jurnalul de sistem (mai puțin /var/log/syslog) există o eroare - „Eșuat la hibernarea sistemului prin logind: Acces refuzat”:

.
02:51:06 Tgnome-shell[1983]: st_widget_get_theme_node apelat pe widget-ul [0x564b127b6d00 StWidget:last-child] care nu este în stadiu.
02:51:06 gnome-shell[1983]: st_widget_get_theme_node apelat pe widget-ul [0x564b12781480 StBoxLayout ("")] care nu este în stadiu.
02:51:13 systemd[1735]: Aplicație pornită lansată de gnome-shell.
02:51:13 gnome-shell[5729]: Hibernarea sistemului prin login: Acces refuzat
02:51:27 gnome-shell[5729]: Nu s-a pornit hibernate.target: Acces refuzat
02:51:27 gnome-shell[5729]: Consultați jurnalele de sistem și „starea systemctl hibernate.target” pentru detalii.

După introducerea parolei, acțiunea de hibernare este probabil efectuată de not systemctl hibernare ci o altă comandă. Nu sunt sigur, dar poate fi pe lângă pm-hibernare sau hibernează comenzi - ceea ce nu este recomandat.

Diferența dintre „pm-hibernate” și „systemctl hibernate”

Un răspuns destul de scurt la aceasta ar fi că systemd este menținut activ, în timp ce pm-utils nu este. De fapt, pm-utils nu a fost actualizat din 2010, așa că aș considera acest software atât antic, cât și depășit. Este recomandat să utilizați systemctl din acest moment.

Diferența dintre „systemctl hibernate” și „hibernate”:

Comanda hibernate a fost înlocuită cu systemctl hibernate. Se recomandă utilizarea systemctl hibernate. Comanda hibernate este încă disponibilă în sistem din motive de compatibilitate.

În Ubuntu 18,19,20 sistemul hibernează comanda cere sudo pentru executarea sa: Permisiune „systemctl suspend” vs „systemctl hibernate”.

În implementarea SimplerOffMenu extensie în Hibernează butonul folosit de handler systemctl hibernare, nu sudo systemctl hibernare care este necesar pentru a rezolva această problemă.

Fix

Schimbare extensie.js fișier după cum urmează:

funcția FuncHibernate(widget, eveniment) {
    Main.overview.hide(); încerca {
       //fix start: adăugat sudo
       //Util.trySpawnCommandLine('systemctl hibernate');
       Util.trySpawnCommandLine('sudo systemctl hibernate');
       //sfarsit fix
    } prinde (eră) {
        Main.notify("Eroare" + err);
    }
}

Fix extensie.js fisierul este Aici.

Soluție

Pentru a remedia această problemă în Ubuntu 20.04 după ce extensia este deja instalată, trebuie să facă următoarele:

Schimbați scriptul JS al extensiei care a fost instalată aici:

/home/<your_user_name>/.local/share/gnome-shell/extensions/[email protected]/extension.js

(puteți găsi locația extensie.js dosar de sudo find /* -name "extension.js")

Apoi adauga sudo așa cum este descris în remedierea de mai sus și protejați fișierul.

Pentru a aplica remedierea ar putea fi suficient doar să salvați fișierul. Eu pentru orice eventualitate am executat instrucțiunea de la Aici:

  • A dezactivat și a activat extensia, apăsat butonul de configurare pornit pagina de extensie
  • Presat Alt+F2, a intrat r și apăsat introduce
  • Deconectat și autentificat

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.