Seite 1 von 1
User das runter fahren verbieten, wenn...

Verfasst:
Sep 28th, '12, 17:10
von AndieY
....ein anderer User oder Root per ssh eingeloggt ist?
Ist das realisierbar? wenn ja wie!
Grund meiner Anfrage:
Habe hier einen Rechner mit Mageia2, den ich per ssh administriere. Nun sitzen verschiedene User an dem Rechner welche mitunter ihn auch mal herunterfahren wenn man Grade per ssh eingeloggt ist und ein update fährt.
Re: User das runter fahren verbieten, wenn...

Verfasst:
Sep 28th, '12, 19:05
von alf
Generell könntest du das herunterfahren/rebooten der User durch den msec-Parameter ALLOW_REBOOT steuern.
Ansonsten wohl über /usr/share/polkit-1/actions/org.freedesktop.login1.policy. Allerdings sieht es so aus, als sei es die Standardeinstellung das in diesem Fall Systemverwalterrechte für das Runterfahren erforderlich sind.
Re: User das runter fahren verbieten, wenn...

Verfasst:
Sep 30th, '12, 09:14
von AndieY
mmhh ich sehe schon das. das ist wohl ein schwieriger Fall.
Hab mir mal die /usr/share/polkit-1/actions/org.freedesktop.login1.policy angeschaut. Werde aber auch nicht schlauer daraus, liegt vermutlich an meinen fast nicht vorhandenen Englischkenntnissen. Root Rechte sind nicht das Problem die habe ich sowieso, das eigentliche Problem ist: wie ändere ich nur temporär die Rechte für das herunterfahren.
Re: User das runter fahren verbieten, wenn...

Verfasst:
Sep 30th, '12, 09:37
von alf
Unter KDE kannst du diese policies auch per gui bearbeiten. KDE-Systemeinstellungen --> Systemverwaltung --> Aktionsberechtigungen.
Re: User das runter fahren verbieten, wenn...

Verfasst:
Sep 30th, '12, 12:03
von man-draker
AndieY hat geschrieben:mmhh ich sehe schon das. das ist wohl ein schwieriger Fall.
Ja, denn neben der Aktion selber, dürfte es wichtig sein, dass die Anwender darüber informiert werden,
warum sie gerade
vergeblich versuchen, den Rechner herunter zu fahren.
Re: User das runter fahren verbieten, wenn...

Verfasst:
Sep 30th, '12, 14:05
von alf
man-draker hat geschrieben:Ja, denn neben der Aktion selber, dürfte es wichtig sein, dass die Anwender darüber informiert werden, warum sie gerade vergeblich versuchen, den Rechner herunter zu fahren.
Eine entsprechende Meldung wird schon ausgegeben, wenn die Regeln entsprechend eingestellt sind. Allerdings ist es mir unter MGA2 noch nicht gelungen die so einzustellen, dass aus der grafischen Oberfläche heraus das Runterfahren/Rebooten unbunden wird; im tty funktionierts

Re: User das runter fahren verbieten, wenn...

Verfasst:
Okt 1st, '12, 21:28
von wanne
Ich wüde das so machen Vielleicht ein bisschen umständlich aber müsste funktionieren:
/usr/local/sbin/sudoshutdown:- Code: Alles auswählen
#!/bin/sh
PATH="/usr/bin:/bin:/usr/sbin:/sbin"
if [ "$(ps -e -o %U%y |grep -E "root[[:space:]]*pts" | wc -l)" = "0" ]; then
/sbin/poweroff
exit 0;
else
echo "root ist gerade eingelogt"
exit 4;
fi
/usr/bin/poweroff- Code: Alles auswählen
#!/bin/sh
sudo /usr/local/sbin/sudoshutdown
retcode="$?"
if [ "$retcode" = "4" ]; then
kdialog --error "root ist gerade eingelogt."
fi
/etc/sudoers- Code: Alles auswählen
Defaults !env_reset,!tty_tickets
Defaults env_delete += "*"
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
%users [HOSTNAME]= (root) NOPASSWD: /usr/local/sbin/sudoshutdown
Re: User das runter fahren verbieten, wenn...

Verfasst:
Okt 4th, '12, 14:03
von AndieY
@wanne
du hast dir ja ne menge Arbeit gemacht, aber irgendwie funktioniert deine Lösung nicht!!
Meine /usr/local/sbin/sudoshutdown:- Code: Alles auswählen
#!/bin/sh
PATH="/usr/bin:/bin:/usr/sbin:/sbin"
if [ "$(ps -e -o %U%y |grep -E "linux[[:space:]]*pts" | wc -l)" = "0" ]; then
/sbin/poweroff
exit 0;
else
echo "root ist gerade eingelogt"
exit 4;
fi
Meine /etc/sudoers- Code: Alles auswählen
Defaults !env_reset,!tty_tickets
Defaults env_delete += "*"
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
%users [Mageia]= (linux) NOPASSWD: /usr/local/sbin/sudoshutdown
Hostname ist Mageia und der User für das ssh heißt linux
Re: User das runter fahren verbieten, wenn...

Verfasst:
Okt 4th, '12, 14:35
von man-draker
AndieY hat geschrieben:Hostname ist Mageia und der User für das ssh heißt linux
Ersetze mal den Suchbegriff "root" nicht durch den Benutzernamen des ssh-Users, sondern durch dessen (U)ID.
Re: User das runter fahren verbieten, wenn...

Verfasst:
Okt 4th, '12, 20:33
von wanne
Halt da hab ich mich wohl nicht gan eindeutig ausgedrückt:
Die /etc/sudoers müsste dann so aussehen:
- Code: Alles auswählen
Defaults !env_reset,!tty_tickets
Defaults env_delete += "*"
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
%users Mageia= (root) NOPASSWD: /usr/local/sbin/sudoshutdown
Und der nutzer linux sollte dann in der Gruppe users sein. (Die Zeile bedeutet: Die User aus der Gruppe users dürfen ohne Passwort den Befehl /usr/local/sbin/sudoshutdown als root ausfühern.) Wenn du das nur für einen User haben willst geht das dann so:
- Code: Alles auswählen
Defaults !env_reset,!tty_tickets
Defaults env_delete += "*"
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
%linux Mageia= (root) NOPASSWD: /usr/local/sbin/sudoshutdown
Achso und du darfst dann nur aus der grafischen Oberflöche (z.B. aus der Konsole) runterfahren. Wills du auch von der TTY oder per ssh runter fahren können musst du statt Mageia ALL einfügen.
Re: User das runter fahren verbieten, wenn...

Verfasst:
Okt 4th, '12, 20:39
von wanne
Achso un der eigentliche Trick ist das ich /usr/bin/poweroff austasche und die /sbin/poweroff behalte. root kann dann immer runter Fahren und normale User wird dann root, wenn root nicht shcon da ist.