shutdown verhindern

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
Benutzeravatar
debdog
Beiträge: 652
Registriert: 11.02.2007 10:53:12
Wohnort: Do,womrkoihochdeitschko

shutdown verhindern

Beitrag von debdog » 02.02.2011 20:49:26

Wie kann man temporär verhindern, daß der PC heruntergefahren wird? Konkret meine ich, wenn man per ssh einen Desktoprechner fernwartet, soll dieser währenddessen nicht versehentlich von einem eventuellen Benutzer heruntergefahren werden können. D.h. alles was ein init 0 oder 6 auslösen kann muss geblockt werden. Beim Powerbutton, zumindest wenn nur kurz gedrückt, bin ich mir nicht sicher, aber das ist ja auch nur ein event welches im Endeffekt auf init 0 hinausläuft, oder?

Hat jemand eine Idee wie ich da am besten Ansetzen könnte? Kann man 'einfach' init 0 und 6 deaktivieren?
Danke schonmal für jeden Tipp.
Oben gemachte Angaben, Falls nicht anderweitig Erwähnt, beziehen sich auf Debian Stable (Squeeze) amd64.
"Die Einen glauben zu Wissen, die Anderen wissen zu Glauben."

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Re: shutdown verhindern

Beitrag von cosmac » 02.02.2011 22:18:18

hi,

erstmal das Kleingedruckte: Kinder, macht das nicht zu Hause nach! Die Risiken und Nebenwirkungen kann auch ein Arzt oder Apotheker kaum abschätzen!

Code: Alles auswählen

chmod 444 /sbin/init
funktioniert zwar, aber wehe, wenn das vor dem nächsten Reboot nicht zurückgesetzt wird. Umbenennen wäre sicherer, wenn man die Boot-Option "init=/sbin/umbenanntes_init" benutzt. Bei den nächsten beiden Kandidaten, /sbin/halt und /sbin/shutdown, könnte "chmod" ausreichen; damit wäre auch der Power Button Event abgedeckt.

init lässt sich auch per /dev/initctl steuern, aber das ist kaum dokumentiert, deswegen gehen wir mal davon aus, dass da niemand versehentlich rein schreibt.

Dann muss man ALT-SYSRQ abschalten:

Code: Alles auswählen

echo 0 > /proc/sys/kernel/sysrq
mit einem Wert > 1 kann man auch gezielt einzelne sysreq-Funktionen abschalten, siehe /usr/src/linux/Documentation/sysrq.txt.

Wenn man dann noch den Reset-Knopf abklemmt und eine USV mit ins PC-Gehäuse einbaut, ist alles abgedeckt, was mir jetzt einfällt, also schätzungsweise die Hälfte aller Möglichkeiten ;)
Beware of programmers who carry screwdrivers.

Benutzeravatar
debdog
Beiträge: 652
Registriert: 11.02.2007 10:53:12
Wohnort: Do,womrkoihochdeitschko

Re: shutdown verhindern

Beitrag von debdog » 02.02.2011 23:00:48

Vielen Dank, sehr gute Erklärung!

Hab jetzt, nach dem ersten Lesen, einen guten Überblick und die Ideen kommen schon. Die ganzen Details und vielen Infos hier muss ich aber erst mal verarbeiten...
cosmac hat geschrieben:[...] erstmal das Kleingedruckte: Kinder, macht das nicht zu Hause nach! Die Risiken und Nebenwirkungen kann auch ein Arzt oder Apotheker kaum abschätzen!

Code: Alles auswählen

chmod 444 /sbin/init
funktioniert zwar, aber wehe, wenn das vor dem nächsten Reboot nicht zurückgesetzt wird.
Ich dachte da an irgendwas in Scriptform. So daß, wenn dieser Vorgang gestartet wird, er auch nicht durch Vergesslichkeit nicht beendet wird.
cosmac hat geschrieben:Wenn man dann noch den Reset-Knopf abklemmt und eine USV mit ins PC-Gehäuse einbaut, ist alles abgedeckt, was mir jetzt einfällt, also schätzungsweise die Hälfte aller Möglichkeiten ;)
Darn, den Resetknopf hab ich ja total vergessen...
Naja, ich hoffe ja, daß die Unterweisung die ich dazu gebe dem Nutzer im rechten Augenblick wieder einfällt. Nämlich dann, wenn der PC nicht herunterfährt wenn er es ihm befiehlt. Dann erinnert er sich hoffentlich daran, daß ich gesagt habe, daß das dann ok ist und ihn dann einfach laufen lassen soll. (Ich weiss, sowas fällt einem dann immer ein, kurz nachdem man den Netzstecker gezogen hat. Aber das ist dann halt Schicksal ;))
Oben gemachte Angaben, Falls nicht anderweitig Erwähnt, beziehen sich auf Debian Stable (Squeeze) amd64.
"Die Einen glauben zu Wissen, die Anderen wissen zu Glauben."

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Re: shutdown verhindern

Beitrag von cosmac » 02.02.2011 23:19:45

debdog hat geschrieben:Ich dachte da an irgendwas in Scriptform. So daß, wenn dieser Vorgang gestartet wird, er auch nicht durch Vergesslichkeit nicht beendet wird.
grundsätzlich ein guter Plan, aber gerade dann fällt der Strom aus oder der Kernel kommt in Panik. Aber rein gegen Vergesslichkeit könnte das Script warten, bis die ssh-Verbindung beendet ist, z.B. mit "killall -0 --wait $PID_DER_SHELL_DER_VERBINDUNG".
Beware of programmers who carry screwdrivers.

Benutzeravatar
hikaru
Moderator
Beiträge: 13975
Registriert: 09.04.2008 12:48:59

Re: shutdown verhindern

Beitrag von hikaru » 02.02.2011 23:47:49

cosmac hat geschrieben:Wenn man dann noch den Reset-Knopf abklemmt und eine USV mit ins PC-Gehäuse einbaut, ist alles abgedeckt, was mir jetzt einfällt, also schätzungsweise die Hälfte aller Möglichkeiten ;)
Nicht vergessen, alle stromführenden externen Schnittstellen (wie z.B. USB und Firewire) zu verkleistern. So eine Büroklammer im USB-Port kann Wunder bewirken.
Mit Blick auf deine Signatur wäre ein Metalldetektor am Büroeingang sicher auch nicht verkehrt. ;-)

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Re: shutdown verhindern

Beitrag von cosmac » 03.02.2011 00:14:36

hikaru hat geschrieben:So eine Büroklammer im USB-Port kann Wunder bewirken.
8) sehr gute Idee aus der Abteilung "... so far, the universe is winning"
Mit Blick auf deine Signatur wäre ein Metalldetektor am Büroeingang sicher auch nicht verkehrt. ;-)
Hmm, was könnte ich denn mit meinem Abgleichschraubendreher aus Kunststoff anstellen? Vielleicht den Lüfter blockieren bis das Teil abbrennt :mrgreen:
Beware of programmers who carry screwdrivers.

roth
Beiträge: 152
Registriert: 30.01.2008 13:41:34

Re: shutdown verhindern

Beitrag von roth » 03.02.2011 14:03:26

Grüß Gott,


Tante Gurgel sagte zu der Frage "+shutdown +ssh +verhindern" u.a.:
[SOLVED Autom. Shutdown verhindern, wenn per ssh eingeloggt

Vielleicht helfen auch diese Beiträge weiter:
Aktuell angemeldete ssh Sessions auslesen? (Ubuntuusers)
auth.log auswerten mit grep (Ubuntuusers)


Das löst alles die Problemstellung nicht alleine, hilft aber womöglich bei der Gestaltung eines Skriptes, in welches "shutdown" oder "halt" eingebettet werden könnten ("wrapper").
Beispielsweise wäre doch ein Ansatz:

Code: Alles auswählen

sudo netstat -pute | grep ssh
Solange diese Abfrage keine leere Menge als Ausgabe liefert, darf "halt" oder "shutdown" nicht ausgeführt werden.
Wenn es nicht ganz so restriktiv sein soll, kann mit grep ja auf die Zeichenfolge der eigenen Benutzerkennung des fernwartenden Benutzers geprüft werden.

Gruß
Sven

Antworten