Re: Shutdown temporär unterbinden
On Sat, Nov 20, 2010 at 10:02:55PM +0100, Dirk Salva wrote:
> On Sat, Nov 20, 2010 at 09:57:46AM +0100, Wilko Fokken wrote:
> > Moin mitnanner,
> > ich weiß nicht, ob ich in dieser Frage noch mitreden kann, aber mein Debian
> > Sarge kennt die Option 'shutdown -a'; dann prüft shutdown, ob eine Datei
> > '/etc/shutdown.allow' existiert und verhält sich gemäß den dortigen
> > Eintragungen.
> > root könnte diese Datei beim Einloggen temporär anlegen und beim Ausloggen
> > (per 'trap'?) wieder löschen.
'trap' habt in meiner Testkonfiguration nicht funktioniert;
ich habe es durch '~/.bash_logout' es funktioniert gut.
> Das wäre die allereleganteste Lösung, wie sie mir vorschwebt: Vom root
> (btw. meinem User, sobald der am System angemeldet wird!), sobald er
> angemeldet wird, eine temporäre Datei erstellen lassen, auf die
> generell getestet wird, und wenn die existiert, wird nicht
> heruntergefahren.
> Dabei an so wenig Stellen wie möglich im System was verändern müssen,
> weil jede Veränderung sowohl dokumentiert als auch bei jedem
> System-update wieder auf Existenz und Funktionsfähigkeit überprüft
> werden müsste.
>
> > In '/etc/inittab' (falls diese Datei bei Euch noch existiert)
> > ist die shutdown-Option '-a' bereits eingetragen:
> > 'ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -h now'
> > '/etc/shutdown.allow' würde also abgrfragt.
>
> Das betrifft aber meiner Information nach ausschliesslich die
> Tastenkombination. Ansonsten muss beim shutdown-Befehl explizit -a
> angegeben werden, oder? Wenn letztere Vermutung richtig wäre, wäre das
> auch wieder unschön, weil man jede Stelle im System darauf hin
> überprüfen müsste, ob auch "-a" verwendet wird. Oder habe ich da was
> falsch verstanden?
>
> ciao, Dirk
Moin Dirk,
(ich habe nach längerer Auszeit für Krankenpflege 'mutt' mit dem für mich
noch nicht so vertrauten 'exim4' konfiguriert - deshalb meine ersten beiden,
etwas doppelt gemoppelten Mails.)
In meiner Antwort-Mail an mich selbst habe ich meine Testkonfiguration
für die Anwendung von 'Ctrl-Alt-Del' dargestellt; sie funktioniert.
Für das Problem eines manuellen Aufrufes von 'shutdown' durch Normaluser
sehe ich im Moment drei Möglichkeiten:
a) ein global aufrufbares Shellscript: '/usr/local/sh/shutdown',
dessen Verzeichnis im Pfad VOR '/sbin/' eingetragen werden muß:
'sudo shutdown -a "$*"'
b) Ein analoger Eintrag in '/etc/profile.local' als Shell-Funktion für
alle User. Vorteil: Wird unbedingt VOR '/sbin/shutdown' aufgerufen.
'shutdown () {
sudo /sbin/shutdown -a "$*"
}'
c) Eine eigene Datei '/etc/aliases.sh' wird für allgemein verwendbare
Aliase eingerichtet, aufgerufen von /etc/profile.local' (vgl. b)).
Für den Aufruf von shutdown wird eingetragen:
"alias shutdown='sudo /sbin/shutdown -a'"
Die Version c) scheint mir die schlichteste und schlankeste Umkonfiguration:
- der einzige möglicherweise Update-gefährdete Eintrag ist die letzte
Zeile von '/etc/profile/:
# -------------------------------------------------
test -f /etc/profile.local && . /etc/profile.local
# -------------------------------------------------
Diese 3 Zeilen können in einer eigenen Datei, z.B. 'call_local_profile'
gespeichert werden und nach einem System-Update an die neue
Standard-'/etc/profile' angehängt werden:
"cat call_profile.local >> /etc/profile"
In der '/etc/profile.local' muß auch die Datei '/etc/aliases.sh' aufgerufen
werden, um alle gewünschten Aliase zu aktivieren:
# rework bash aliases (/etc/aliases.sh):
# ------------------------------------------
unalias -a # unset existing aliases
. /etc/alias.sh # set customized aliases
In die Datei '/etc/alias.sh' wiederum muß der Aufruf
"alias shutdown='sudo shutdown -a'"
eingetragen werden.
=====================================================================
Das Problem, nach jedem Update '/etc/profile' zu prüfen, ob der Aufruf
von '/etc/profile.local' noch vorhanden ist, scheint mir nicht allzu
gravierend.
Die neuen Dateien: '/etc/profile.local' und '/etc/aliases.sh' sind von
System-Updates nicht betroffen.
Die Hilfsdatei '/etc/call_profile.local' bleibt ebenfalls unbehelligt.
So braucht sich also normalerweise nur den obigen 'cat'-Befehl zu merken,
um eine neue '/etc/profile' wieder in ihren modifizierten Stand zu
versetzen.
(Im übrigen sichere ich das ganze Verzeichnis '/etc' als tar-Datei.)
=====================================================================
Das Restrisiko, ob ein Normaluser, der nicht 'shutdown' aufruft, sondern
'sudo shutdown', ob der den Shutdown-Parameter dabei löscht, kann ich noch
nicht testen, da bei erfolgreichem Shutdown meine jetzigen sessions beendet
würden.
(Ich verweise noch einmal auf meine Test-Konfiguration in meiner anderen Mail.)
Gruß Wilko Fokken
--
Wilko Fokken De Künst' geiht wiet, say de Boer;
Landschaftspolder 67 do sach hei 'n Aap.
D-26831 Bunde
--------------------
Tel. 04953-9219882
Reply to: