Rechner ausschalten als User
Rechner ausschalten als User
Uner wheezy hatte ich mir ein shellscript geschrieben, das dem User via super erlaubte, den Rechner auszuschalten. Bei jessie spuckt mir systemd in die Suppe. Gibt es noch eine Möglichkeit ohne sudo?
Grüße, Günther
Grüße, Günther
Zuletzt geändert von guennid am 22.11.2015 17:38:37, insgesamt 1-mal geändert.
Re: Rechner ausschalten via super
Einen relativ unbeachteten Post dazu hatte ich mal hier [1] geschrieben, vielleicht hilfts ja...
Wäre demnach pkexec mit /sbin/shutdown
[1] viewtopic.php?f=37&t=157915#p1065366
Wäre demnach pkexec mit /sbin/shutdown
[1] viewtopic.php?f=37&t=157915#p1065366
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!
Macht ohne Haftung funktioniert nicht!
Re: Rechner ausschalten via super
Bei einer auch nur einigermaßen "normalen" (jessie-)Installation sollte ein (lokal angemeldeter) Benutzer den Computer mit
herunterfahren dürfen und können.
Code: Alles auswählen
$ systemctl poweroff
Zuletzt geändert von smutbert am 22.11.2015 15:50:51, insgesamt 1-mal geändert.
Re: Rechner ausschalten via super
Tja, smutbert, ich mach das mit debian schon ein bisschen länger. Geneauer gesagt seit woody und früher war es alles andere als normal, dass der User ohne besondere Rechte den Rechner ausschalten durfte. Ob, wann und wie das mal umgestellt wurde, ist mir leider entgangen. Und hier darf ich es bisher nicht.
Mal schauen, was detix' link dazu sagt.
Grüße, Günther
Mal schauen, was detix' link dazu sagt.
Grüße, Günther
Re: Rechner ausschalten via super
smutbert hat geschrieben:Bei einer auch nur einigermaßen "normalen" (jessie-)Installation sollte ein (lokal angemeldeter) Benutzer den Computer mitherunterfahren dürfen und können.Code: Alles auswählen
$ systemctl poweroff
also bei mir Debian GNU/Linux stretch/sid auch .
ein systemctl poweroff schaltet aus .
gruss MaGe
Wir müssen uns vor der Klimaerwärmung nicht fürchten.
Uns rottet die soziale Kälte viel früher aus.
Uns rottet die soziale Kälte viel früher aus.
Re: Rechner ausschalten via super
Code: Alles auswählen
peter@tower:~$ systemctl poweroff
==== AUTHENTICATING FOR org.freedesktop.login1.power-off ===
Legitimierung ist zum Ausschalten des Systems notwendig.
Authenticating as: root
Password: Failed to execute operation: Method call timed out
Failed to start poweroff.target: Access denied
polkit-agent-helper-1: pam_authenticate failed: Authentication failure
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!
Macht ohne Haftung funktioniert nicht!
Re: Rechner ausschalten via super
@detix
Dasselbe hier.
Policykit-1 ist nicht installiert. Ich hab's jetzt über sudo gemacht. Wo ich noch nicht durchblicke ist: /sbin/shutdown ist doch anscheinend eh nur noch ein Link auf /bin/systemctl. Wenn's mit sudo ohne weitere Installationen funktioniert, sollte es doch auch mit super zu machen sein?
Dasselbe hier.
Policykit-1 ist nicht installiert. Ich hab's jetzt über sudo gemacht. Wo ich noch nicht durchblicke ist: /sbin/shutdown ist doch anscheinend eh nur noch ein Link auf /bin/systemctl. Wenn's mit sudo ohne weitere Installationen funktioniert, sollte es doch auch mit super zu machen sein?
Re: Rechner ausschalten via super
Das habe ich nicht ganz verstanden, allein wegen des Befehls "pkexec" solltest du schon policykit-1 installieren.guennid hat geschrieben:Policykit-1 ist nicht installiert. Ich hab's jetzt über sudo gemacht.
super kenne ich leider überhaupt nicht, lt Paketbeschreibung müßtest du vielleicht nur das setuid-Bit bei diversen Befehlen setzen, keine Ahnung...
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!
Macht ohne Haftung funktioniert nicht!
Re: Rechner ausschalten als User
mein englisch ist nicht das beste, aber vielleicht hilft das.
UserShutdown
https://wiki.debian.org/UserShutdown
gruss MaGe
UserShutdown
https://wiki.debian.org/UserShutdown
gruss MaGe
Wir müssen uns vor der Klimaerwärmung nicht fürchten.
Uns rottet die soziale Kälte viel früher aus.
Uns rottet die soziale Kälte viel früher aus.
Re: Rechner ausschalten als User
Da steht eigentlich nur, dass es, vorausgesetzt, dass policykit1 und systemd installiert sind, man mit als normaler, lokal angemeldeter Benutzer mit »systemctl poweroff« herunterfahren kann.
super kannte ich auch noch nicht. Wenn du das weiterverwenden willst, wäre es ev. hilfreich, wenn du etwas genauer beschreibst auf welche Art das scheitert. Du könntest es auch mit -d oder -D aufrufen, um etwas mehr Meldungen zu bekommen, wenn die Meldungen ohne nicht ausreichen um den Fehler einzugrenzen.
super kannte ich auch noch nicht. Wenn du das weiterverwenden willst, wäre es ev. hilfreich, wenn du etwas genauer beschreibst auf welche Art das scheitert. Du könntest es auch mit -d oder -D aufrufen, um etwas mehr Meldungen zu bekommen, wenn die Meldungen ohne nicht ausreichen um den Fehler einzugrenzen.
Re: Rechner ausschalten als User
Ich bin skeptisch, ob wir das hinkriegen. Ich benutze das, wie gesagt seit 2002/3, als mir das mal hier im Forum jemand empfohlen hatte. Und bisher ist es aus keiner Debian-Version herausgeflogen, obwohl ich mittlerweile womöglich sein einziger user bin. Ein besonderer Fan davon bin ich auch nicht, aber man konnte damit immer schön einen User-Shutdown via script durchführen ohne das Gerödel mit /etc/sudoers, deren Syntaxfeinheiten ich eh nie richtig verstanden habe - wozu auch, super tat den Job.Wenn du das weiterverwenden willst, wäre es ev. hilfreich, wenn du etwas genauer beschreibst auf welche Art das scheitert.
Zur Art des Scheiterns kann ich nicht allzuviel sagen. Es läuft so, dass man das root vorbehaltene Kommando in ein shell-script schreibt mitsamt den Parametern, mit denen man das Kommando ausführen will, und in /etc/super.tab ist dann eine Zeile mit drei Spalten einzutragen: scriptname, absoluter Pfad des Kommandos, User, der es ausführen soll). Also in der vom User ausführbaren Datei "totschießen" steht dann
Code: Alles auswählen
#!/bin/sh
super totschießen -h now
Code: Alles auswählen
totschießen /sbin/shutdown [user]
Code: Alles auswählen
$ totschießen
aus [OPTIONS...] {COMMAND} ...
Query or send control commands to the systemd manager.
...
Grüße, Günther
Re: Rechner ausschalten als User
Ich nichtguennid hat geschrieben:[…] Ich bin skeptisch, ob wir das hinkriegen. […]
Ich vermute schwer, dass es funktionieren würde im Skript und in der super-Konfigurationsdatei "shutdown" bzw. "shutdown -h now" durch "systemctl" bzw. "systemctl poweroff" zu ersetzen
Dass der Link auf systemctl als shutdown-Ersatz funktioniert beruht ja wohl darauf, dass systemctl feststellen können muss, dass es unter dem Namen shutdown und nicht systemctl aufgerufen wurde und genau das wird wohl mit dem Mechanismus von super nicht funktionieren (obwohl ich das in der Kürze ehrlich gesagt nicht 100%ig durchblickt habe).
Darauf deutet imho auch der systemctl-Hilfetext hin, den du offensichtlich erhältst, denn wenn systemctl nicht merkt, dass es als shutdown aufgerufen wurde (aufgerufen werden hätte wollen bzw. sollen ☺) dann fängt es mit den Parametern "-h now" nichts an:
Code: Alles auswählen
$ systemctl -h now
systemctl [OPTIONS...] {COMMAND} ...
Query or send control commands to the systemd manager.
-h --help Show this help
--version Show package version
--system Connect to system manager
[…]
Re: Rechner ausschalten als User
Du wirst es nicht glauben, aber auf die Idee war ich auch schon gekommen. , same procedure. Aber ich mach's nochmal. Ich weiß ja nie, was ich so alles angestellt habe.Ich vermute schwer, dass es funktionieren würde im Skript und in der super-Konfigurationsdatei "shutdown" bzw. "shutdown -h now" durch "systemctl" bzw. "systemctl poweroff" zu ersetzen
Grüße, Günther
[edit]: Ahhh! Es ändert sich was:
Code: Alles auswählen
Failed to execute operation: The name org.freedesktop.PolicyKit1 was not provided by any .service files
Failed to start poweroff.target: Access denied
Und um die Installation von policykit würde ich gerne herumkommen.
Re: Rechner ausschalten als User
vor Jessie-Zeiten war in der Datei /etc/inittab die Tastenkombination CTRL-ALT-ENF standardmäßig so konfiguriert, dass ein Reboot durchgeführt wurde. Leider gibt es nun die /etc/inittab nicht mehr. CTRL-ALT-ENTF funktioniert aber immer noch.
Wo kann man diese Tastenkombination wieder so umbiegen, das ein shutdown ausgeführt wird?
fragt Karlheinz
Danke für Tips
Wo kann man diese Tastenkombination wieder so umbiegen, das ein shutdown ausgeführt wird?
fragt Karlheinz
Danke für Tips
Re: Rechner ausschalten als User
Siehe /lib/systemd/systemrennpferd hat geschrieben:Wo kann man diese Tastenkombination wieder so umbiegen, das ein shutdown ausgeführt wird?
fragt Karlheinz
ctrl-alt-del.target ist ein symbolischer Link auf reboot.target. Wenn du den Link auf poweroff.target änderst, gibt's bei Strg-Alt-Ent ein Shutdown.
Re: Rechner ausschalten als User
sieh dir einmal die Datei »/lib/systemd/system/ctrl-alt-del.target« an. Standardmäßig ist das ein symbolischer Link auf das reboot-Target
wenn man den Link auf das poweroff- oder shutdown-Target umbiegt und die Dateien neu einlesen lässt
dann sollte eigentlich bei <Ctrl>+<Alt>+<Entf> eigentlich ein Shutdown erfolgen.
Code: Alles auswählen
$ ls -l /lib/systemd/system/ctrl-alt-del.target
lrwxrwxrwx 1 root root 13 Aug 29 17:45 /lib/systemd/system/ctrl-alt-del.target -> reboot.target
Code: Alles auswählen
# rm /lib/systemd/system/ctrl-alt-del.target
# ln -s /lib/systemd/system/poweroff.target /lib/systemd/system/ctrl-alt-del.target
# systemctl daemon-reload
Re: Rechner ausschalten als User
Funktioniert. Danke für die Infoctrl-alt-del.target ist ein symbolischer Link auf reboot.target. Wenn du den Link auf poweroff.target änderst, gibt's bei Strg-Alt-Ent ein Shutdown.
Karlheinz