Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
polkit hibernate, multiple users [circumvented]
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German)
View previous topic :: View next topic  
Author Message
Treborius
Guru
Guru


Joined: 18 Oct 2005
Posts: 585
Location: Berlin

PostPosted: Sat Jan 19, 2019 7:34 am    Post subject: polkit hibernate, multiple users [circumvented] Reply with quote

Guten morgen, ich habe seit kurzem folgendes Problem,
immer wenn ich meinen Rechner in den hibernate schicken möchte,
ärgert mich polkit mit einer root-Passwort-Abfrage

"Authentication required"

System policy prevents hibernating the system when other users are logged in.

Details =>
Action: Hibernating when multiple users are logged in

Code:

#who
 
root     tty1         2019-01-18 19:57
ick     tty7         2019-01-18 19:58 (:0)
ick     pts/1        2019-01-18 19:58 (:0)
ick     pts/0        2019-01-18 19:58 (:0)
ick     pts/2        2019-01-18 19:58 (:0)


Das System ist nur für mich alleine bestimmt.
Kann mir jemand vielleicht sagen, wo ich das umstelle?
Oder noch lieber: bekomme ich ohne große Schwierigkeiten das polkit von meinem System?

Viele Dank im Voraus,

Treb
_________________
Systems running gentoo :
Desktop, Laptop, ZOTAC AD-10 media-center, odroid-xu4 server / wLan-router


Last edited by Treborius on Fri Jan 25, 2019 5:51 pm; edited 2 times in total
Back to top
View user's profile Send private message
schmidicom
Veteran
Veteran


Joined: 09 Mar 2006
Posts: 1924
Location: Schweiz

PostPosted: Sun Jan 20, 2019 9:31 am    Post subject: Reply with quote

Du kannst polkit keinen Vorwurf dafür machen wenn es genau das tut was es soll. Es wäre wohl besser wenn du herausfindest wo diese zusätzlichen User-Anmeldungen eigentlich herkommen und das abstellst, den durch das entfernen von polkit werden die kaum verschwinden.
_________________
Lenovo - ThinkPad P16s Gen 2 - 21K9CTO1WW
Back to top
View user's profile Send private message
bbgermany
Veteran
Veteran


Joined: 21 Feb 2005
Posts: 1844
Location: Oranienburg/Germany

PostPosted: Mon Jan 21, 2019 10:13 am    Post subject: Reply with quote

Hi,

Wie wechselst du denn in den Suspend-to-Disk Modus? Im X oder via Konsole. Eventuell reicht es schon, wenn du die Anmeldung von root auf der Konsole beendest, dass die PW Abfrage kommt. Ist zumindest bei mir auf dem Laptop so, wenn ich den Herunterfahren möchte und auf einer oder mehreren Konsolen ist root angemeldet.

MfG. Stefan
_________________
Desktop: Ryzen 5 5600G, 32GB, 2TB, RX7600
Notebook: Dell XPS 13 9370, 16GB, 1TB
Server #1: Ryzen 5 Pro 4650G, 64GB, 16.5TB
Server #2: Ryzen 4800H, 32GB, 22TB
Back to top
View user's profile Send private message
schmidicom
Veteran
Veteran


Joined: 09 Mar 2006
Posts: 1924
Location: Schweiz

PostPosted: Mon Jan 21, 2019 11:35 am    Post subject: Reply with quote

Ich habe mir jetzt mal die Polkit-Aktion für suspend/hibernate und co (siehe "/usr/share/polkit-1/actions/org.freedesktop.login1.policy") etwas genauer angesehen und eigentlich ist es folgendermaßen geregelt:
Aus einer aktiven User-Session heraus darf der Computer bei multiplen aktiven Anmeldungen immer ohne Authentifizierung in den Suspend/Hibernate-Modus geschickt werden, lediglich beim Herunterfahren wird eine Admin-Authentifizierung nötig. Auch eine Authentifizierung wird nötig sobald irgend ein Programm versucht das Herunterfahren oder den Suspend/Hibernate zu blockieren (geregelt über die drei Aktionen "org.freedesktop.login1.halt-ignore-inhibit", "org.freedesktop.login1.suspend-ignore-inhibit" und "org.freedesktop.login1.hibernate-ignore-inhibit").

Ohne genau zu wissen wie und unter welchen Bedingungen du deinen Computer in den Schlafmodus schickst ist es unmöglich zu sagen warum du eine Authentifizierung bekommst. Aber es gäbe eine Möglichkeit deinem Benutzer einfach immer das Recht dazu zu erteilen.
Erstelle folgende Datei (Zugriffsrechte: 0644, Besitzer/Gruppe: polkitd/root) und ersetze darin alle DEIN-USER-NAME durch den Benutzernamen unter dem du auf deinem Gerät angemeldet bist:

/etc/polkit-1/rules.d/10-sleep_for_user.rules:
polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.login1.halt" &&
        subject.user == "DEIN-USER-NAME") {
        return polkit.Result.YES;
    }
});

polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.login1.halt-multiple-sessions" &&
        subject.user == "DEIN-USER-NAME") {
        return polkit.Result.YES;
    }
});

polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.login1.halt-ignore-inhibit" &&
        subject.user == "DEIN-USER-NAME") {
        return polkit.Result.YES;
    }
});

polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.login1.suspend" &&
        subject.user == "DEIN-USER-NAME") {
        return polkit.Result.YES;
    }
});

polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.login1.suspend-multiple-sessions" &&
        subject.user == "DEIN-USER-NAME") {
        return polkit.Result.YES;
    }
});

polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.login1.suspend-ignore-inhibit" &&
        subject.user == "DEIN-USER-NAME") {
        return polkit.Result.YES;
    }
});

polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.login1.hibernate" &&
        subject.user == "DEIN-USER-NAME") {
        return polkit.Result.YES;
    }
});

polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.login1.hibernate-multiple-sessions" &&
        subject.user == "DEIN-USER-NAME") {
        return polkit.Result.YES;
    }
});

polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.login1.hibernate-ignore-inhibit" &&
        subject.user == "DEIN-USER-NAME") {
        return polkit.Result.YES;
    }
});

Verweise:
- https://wiki.gentoo.org/wiki/Polkit
- https://wiki.archlinux.org/index.php/Polkit
- https://www.freedesktop.org/software/polkit/docs/latest/polkit.8.html
_________________
Lenovo - ThinkPad P16s Gen 2 - 21K9CTO1WW
Back to top
View user's profile Send private message
Treborius
Guru
Guru


Joined: 18 Oct 2005
Posts: 585
Location: Berlin

PostPosted: Fri Jan 25, 2019 5:49 pm    Post subject: Reply with quote

bbgermany wrote:
Hi,

Wie wechselst du denn in den Suspend-to-Disk Modus? Im X oder via Konsole. Eventuell reicht es schon, wenn du die Anmeldung von root auf der Konsole beendest, dass die PW Abfrage kommt. Ist zumindest bei mir auf dem Laptop so, wenn ich den Herunterfahren möchte und auf einer oder mehreren Konsolen ist root angemeldet.

MfG. Stefan


Bisher habe ich über den kde-hibernate button, den Rechner in den Tiefschlaf geschickt.
Nun geht dieser Button überhaupt nicht mehr.

mich als root abzumelden, zerstört meinen Haupt-Anwendungszweck von hibernate,
nämlich den Rechner schlafen zu legen wenn z.B. ein emerge zu lange dauert,
und ich ihn morgen einfach weiter machen möchte.

Naja da der kde-Button eh nicht mehr funzt, mach ich es jetzt wieder in der root-konsole mit
Code:

pm-hibernate


Ist nur ärgerlich wenn etwas, was über Jahre einfach so funktioniert hat, in sich zusammenbricht.

@schmidicom
Danke für deine Bemühungen, aber da ich nun über kde den Rechenr überhaupt nicht mehr hibternated bekomme...
Ich kann mit der konsolen lösung leben. Wenn ich mal wieder Zeit fürs fummeln habe, werde ich das Problem nochmal angehen
_________________
Systems running gentoo :
Desktop, Laptop, ZOTAC AD-10 media-center, odroid-xu4 server / wLan-router
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum