Rechner ausschalten als User

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
guennid

Rechner ausschalten als User

Beitrag von guennid » 22.11.2015 14:27:25

Uner wheezy hatte ich mir ein shellscript geschrieben, das dem User via Debiansuper erlaubte, den Rechner auszuschalten. Bei jessie spuckt mir systemd in die Suppe. Gibt es noch eine Möglichkeit ohne sudo?

Grüße, Günther
Zuletzt geändert von guennid am 22.11.2015 17:38:37, insgesamt 1-mal geändert.

Benutzeravatar
detix
Beiträge: 1705
Registriert: 07.02.2007 18:51:28
Wohnort: MK

Re: Rechner ausschalten via super

Beitrag von detix » 22.11.2015 15:05:26

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
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Rechner ausschalten via super

Beitrag von smutbert » 22.11.2015 15:15:27

Bei einer auch nur einigermaßen "normalen" (jessie-)Installation sollte ein (lokal angemeldeter) Benutzer den Computer mit

Code: Alles auswählen

$ systemctl poweroff
herunterfahren dürfen und können.
Zuletzt geändert von smutbert am 22.11.2015 15:50:51, insgesamt 1-mal geändert.

guennid

Re: Rechner ausschalten via super

Beitrag von guennid » 22.11.2015 15:50:13

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

MaGe
Beiträge: 1717
Registriert: 01.06.2014 17:12:16

Re: Rechner ausschalten via super

Beitrag von MaGe » 22.11.2015 16:43:25

smutbert hat geschrieben:Bei einer auch nur einigermaßen "normalen" (jessie-)Installation sollte ein (lokal angemeldeter) Benutzer den Computer mit

Code: Alles auswählen

$ systemctl poweroff
herunterfahren dürfen und können.
:THX:
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.

Benutzeravatar
detix
Beiträge: 1705
Registriert: 07.02.2007 18:51:28
Wohnort: MK

Re: Rechner ausschalten via super

Beitrag von detix » 22.11.2015 16:56:46

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
Und jetzt?
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!

guennid

Re: Rechner ausschalten via super

Beitrag von guennid » 22.11.2015 17:23:20

@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 Debiansuper zu machen sein?

Benutzeravatar
detix
Beiträge: 1705
Registriert: 07.02.2007 18:51:28
Wohnort: MK

Re: Rechner ausschalten via super

Beitrag von detix » 22.11.2015 17:52:44

guennid hat geschrieben:Policykit-1 ist nicht installiert. Ich hab's jetzt über sudo gemacht.
Das habe ich nicht ganz verstanden, allein wegen des Befehls "pkexec" solltest du schon Debianpolicykit-1 installieren.
Debiansuper 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!

MaGe
Beiträge: 1717
Registriert: 01.06.2014 17:12:16

Re: Rechner ausschalten als User

Beitrag von MaGe » 22.11.2015 20:16:56

mein englisch ist nicht das beste, aber vielleicht hilft das.
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.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Rechner ausschalten als User

Beitrag von smutbert » 22.11.2015 20:34:08

Da steht eigentlich nur, dass es, vorausgesetzt, dass Debianpolicykit1 und Debiansystemd installiert sind, man mit als normaler, lokal angemeldeter Benutzer mit »systemctl poweroff« herunterfahren kann.

Debiansuper 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.

guennid

Re: Rechner ausschalten als User

Beitrag von guennid » 22.11.2015 22:32:38

Wenn du das weiterverwenden willst, wäre es ev. hilfreich, wenn du etwas genauer beschreibst auf welche Art das scheitert.
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. :wink: 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.

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
Und in /etc super.tab steht dann die Zeile

Code: Alles auswählen

totschießen  /sbin/shutdown  [user]
Wenn ich das jetzt unter jessie auszuführen versuche, kommt im Terminal die Meldung:

Code: Alles auswählen

$ totschießen
aus [OPTIONS...] {COMMAND} ...

Query or send control commands to the systemd manager.
...
und dann folgt eine Liste mit - ich nehme an - systemd Hilfen. Ob ich den Parameter -d oder -D noch mit ins script schreibe, macht keinen Unterschied. Ich denke, das Progrämmchen super funktioniert nicht mehr mit systemd.

Grüße, Günther

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Rechner ausschalten als User

Beitrag von smutbert » 22.11.2015 22:42:29

guennid hat geschrieben:[…] Ich bin skeptisch, ob wir das hinkriegen. […]
Ich nicht :wink:

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
[…]

guennid

Re: Rechner ausschalten als User

Beitrag von guennid » 22.11.2015 23:00:30

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
Du wirst es nicht glauben, aber auf die Idee war ich auch schon gekommen. :mrgreen: , same procedure. Aber ich mach's nochmal. Ich weiß ja nie, was ich so alles angestellt habe.

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
Es existiert ein pwoeroff.target und ein systemd-poweroff.service.

Und um die Installation von policykit würde ich gerne herumkommen.

rennpferd
Beiträge: 133
Registriert: 30.06.2011 11:30:08
Kontaktdaten:

Re: Rechner ausschalten als User

Beitrag von rennpferd » 26.11.2015 15:05:10

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

Benutzeravatar
MSfree
Beiträge: 10774
Registriert: 25.09.2007 19:59:30

Re: Rechner ausschalten als User

Beitrag von MSfree » 26.11.2015 15:25:30

rennpferd hat geschrieben:Wo kann man diese Tastenkombination wieder so umbiegen, das ein shutdown ausgeführt wird?
fragt Karlheinz
Siehe /lib/systemd/system

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.

Benutzeravatar
smutbert
Moderator
Beiträge: 8331
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Rechner ausschalten als User

Beitrag von smutbert » 26.11.2015 15:35:35

sieh dir einmal die Datei »/lib/systemd/system/ctrl-alt-del.target« an. Standardmäßig ist das ein symbolischer Link auf das reboot-Target

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
wenn man den Link auf das poweroff- oder shutdown-Target umbiegt und die Dateien neu einlesen lässt

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
dann sollte eigentlich bei <Ctrl>+<Alt>+<Entf> eigentlich ein Shutdown erfolgen.

rennpferd
Beiträge: 133
Registriert: 30.06.2011 11:30:08
Kontaktdaten:

Re: Rechner ausschalten als User

Beitrag von rennpferd » 27.11.2015 10:31:22

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.
Funktioniert. Danke für die Info
Karlheinz

Antworten