Reboot/halt/ blockieren
Reboot/halt/ blockieren
Grüezi,
ich möchte auf irgendeine Weise verhindern, daß aus versehen der Produktivserver heruntergefahren wird.
Wenn zum Beispiel per ssh auf ihn zugegriffen wird, besteht die Gefahr das mit einem simplen "reboot" oder "init 6" der Server neu gestartet wird.
Wie kann ich das "blocken"? Oder zumindest eine Abfrage a la: "Wollen sie wirklich rebooten? Dies ist der Server $Servername und hat soundso viele User die gerade aktiv sind!"
Und wenn man nichts tippt, dann macht es NEIN.
Ich denk da bleibt mir nur ein Script oder?
gruß
/ajk
ich möchte auf irgendeine Weise verhindern, daß aus versehen der Produktivserver heruntergefahren wird.
Wenn zum Beispiel per ssh auf ihn zugegriffen wird, besteht die Gefahr das mit einem simplen "reboot" oder "init 6" der Server neu gestartet wird.
Wie kann ich das "blocken"? Oder zumindest eine Abfrage a la: "Wollen sie wirklich rebooten? Dies ist der Server $Servername und hat soundso viele User die gerade aktiv sind!"
Und wenn man nichts tippt, dann macht es NEIN.
Ich denk da bleibt mir nur ein Script oder?
gruß
/ajk
Ja, aber nur so kurz wie möglich root sein./ajk hat geschrieben:Das ist eben nicht möglich, manche Dinge muß man per Root (su) erledigen. Vor allem wenn der Server frisch aufgesetzt ist und vieles nachkonfiguriert werden muß.
Warum nennst du nicht einfach reboot und halt in "reboot_JA" etc. um. Du kannst dann optional noch ein Skript schreiben, dass du reboot nennst, und welches nach einer entsprechenden Frage und Antwort reboot_JA ausführt. Letzteres sollte aber nicht nötig sein.
Ist trotzdem Möglich. Der jenige, der als root arbeitet, der sollte wissen, was seine Taten für Folgen haben./ajk hat geschrieben:Das ist eben nicht möglich, manche Dinge muß man per Root (su) erledigen. Vor allem wenn der Server frisch aufgesetzt ist und vieles nachkonfiguriert werden muß.
gibt es da keine Möglichkeiten?
gruß
/ajk
Für alle anderen gibt es sudo. Dort kann root zum Beispiel festlegen, das bestimmte User meinetwegen Confdatein ändern dürfen und bestimmte Dienste neustarten dürfen.
Ist alles schon gelöst. Erfordert halt nur administrativen Aufwand und man muss sich nen bissel zusammenreißen, da nen einfaches einloggen als root bequemer ist(mach ich wahrscheinlich auch zu oft).
cu
Reboot_JA wäre eine gute Idee.
Aber wie ändere ich das? (EDIT: ok wie man das umbenennt ist klar)
Genauso wie bei halt und init 6 usw..
Ich dachte per su hat man auch die gleichen Möglichkeiten wie per Root. Oder nicht?
Als Root zusammenreißen ist gut gesagt. Ich hatte einmal den Fall das ich per Shell auf einem Linux Rechner auf einem anderen drauf war. Und denn physisch anwesenden Rechner herunterfahren wollte. Den Rest könnt ihr euch selber denken.
Mein Fehler, meine Nachlässigkeit, aber ich möchte trotzdem verhindern das weder mir noch anderen so etwas geschieht.
/ajk
Aber wie ändere ich das? (EDIT: ok wie man das umbenennt ist klar)
Genauso wie bei halt und init 6 usw..
Ich dachte per su hat man auch die gleichen Möglichkeiten wie per Root. Oder nicht?
Als Root zusammenreißen ist gut gesagt. Ich hatte einmal den Fall das ich per Shell auf einem Linux Rechner auf einem anderen drauf war. Und denn physisch anwesenden Rechner herunterfahren wollte. Den Rest könnt ihr euch selber denken.
Mein Fehler, meine Nachlässigkeit, aber ich möchte trotzdem verhindern das weder mir noch anderen so etwas geschieht.
/ajk
su und sudo ist nicht das gleiche [1]. Es ist zwar administrativer Aufwand, aber es ist durchaus Möglich, einen normalen Benutzer mittels sudo die Rechte für bestimmte Aktionen (wie zum Beispiel Confdateien editieren oder bestimmte Dienste neustarten) zu geben. Somit ist man dann immer als normaler Bentzer angemeldet und holt sich dann nur für die eine Aktion die benötigten Rechte. Das sollte sogar für alle administrativen Aufgaben ein recht guter Weg sein, da man jede Aktion nicht einfach machen kann, sondern mittels sudo explizit anfordern muss, und somit immer einen kleinen Kontrollzwischenschritt hat.
cu
[1] http://www.courtesan.com/sudo/man/sudo.html
cu
[1] http://www.courtesan.com/sudo/man/sudo.html
vielen Dank für eure Hilfe!
Den Administrativen Aufwand scheue ich nicht, was mir fehlt ist oftmals das Wissen.
Darum auch doppelter Dank an euch.
Mir schwebt zum beispiel vor, auf dem Produktivservern den Befehl "halt" in "halt_JA" zu ändern. (Natürlich mache ich das jetzt nicht einfach so, sondern informiere mich jetzt erst darüber!)
Soweit ich das verstanden haben benennt man den Script um. Also den Script "halt".
(bzw. reboot, init 6, shutdown, usw usw)
Das mit dem sudo ist ein guter Hinweis!
gruß
/ajk
Den Administrativen Aufwand scheue ich nicht, was mir fehlt ist oftmals das Wissen.
Darum auch doppelter Dank an euch.
Mir schwebt zum beispiel vor, auf dem Produktivservern den Befehl "halt" in "halt_JA" zu ändern. (Natürlich mache ich das jetzt nicht einfach so, sondern informiere mich jetzt erst darüber!)
Soweit ich das verstanden haben benennt man den Script um. Also den Script "halt".
(bzw. reboot, init 6, shutdown, usw usw)
Das mit dem sudo ist ein guter Hinweis!
gruß
/ajk
Ja, sollte einfach per mv umbenannt werden können./ajk hat geschrieben:Soweit ich das verstanden haben benennt man den Script um. Also den Script "halt".
(bzw. reboot, init 6, shutdown, usw usw)
init solltest du nicht umbenennen, sonst bekommst du arge Probleme. Gewöhne dir einfach ab, init 6 zum runterfahren einzugeben.
Aber per sudo festlegen, was gemacht werden darf (und z.B. verbieten, dass man halt ausführt), ich sicherlich der bessere Weg,
gut, stimmt init umzubennen wäre ziemlich doof.
MIt Sudo werde ich mich jetzt intensiv auseinandersetzen, aber Halt usw.. werde ich trotzdem umbenennen auf "halt_JA".
(Und alles Dokumentieren )
init 6 werde ich einfach nicht verwenden.
Und wenn ich "halt" eingebe wäre es gut wenn eine Echo ausgabe kommen würde. ("dies ist der $SERVERNAME Wollen Sie das wirklich tun? Ich denke eher nicht!") Oder so.
Najo ich merke schon das ich ein gutes Scripte Buch benötige. Ich weiß ja grad mal die GrundGrundlagen.. Habt ihr vielleicht eine Empfehlung für mich? (Auf Deutsch wäre gut, aber Englisch tut es auch)
gruß
/ajk
MIt Sudo werde ich mich jetzt intensiv auseinandersetzen, aber Halt usw.. werde ich trotzdem umbenennen auf "halt_JA".
(Und alles Dokumentieren )
init 6 werde ich einfach nicht verwenden.
Und wenn ich "halt" eingebe wäre es gut wenn eine Echo ausgabe kommen würde. ("dies ist der $SERVERNAME Wollen Sie das wirklich tun? Ich denke eher nicht!") Oder so.
Najo ich merke schon das ich ein gutes Scripte Buch benötige. Ich weiß ja grad mal die GrundGrundlagen.. Habt ihr vielleicht eine Empfehlung für mich? (Auf Deutsch wäre gut, aber Englisch tut es auch)
gruß
/ajk
Ein Buch nicht, aber vielleicht reicht dir ja erst mal [1]. Vor allem der letzte Punkt wo es um Dialog geht, sollte für dich interessant sein. Damit lassen sich verdammt einfach Abfragen gestallten (weiter Infos wie immer unter man dialog).
cu
[1] http://www.linuxfibel.de/bashprog.htm
cu
[1] http://www.linuxfibel.de/bashprog.htm
Hi!
Die Einträge in $PATH werden doch der Reihe nach durchgegangen, oder? Also mach irgendwo (vorzugsweise /root/.bashrc oder /root/.bash_profile) ungefähr sone Einstellung:
Und dann kannst du in deinem home-Unterordner scripts einfach ein Script legen, das reboot bzw. halt heißt, und /sbin/halt eben erst nach einer Sicherheitsabfrage ausführt. Zum Beispiel /root/scripts/reboot:
Bye
g-henna
Edit: Ausführbar machen!!!
Die Einträge in $PATH werden doch der Reihe nach durchgegangen, oder? Also mach irgendwo (vorzugsweise /root/.bashrc oder /root/.bash_profile) ungefähr sone Einstellung:
Code: Alles auswählen
PATH=~/scripts:$PATH
Code: Alles auswählen
#!/usr/bin/python
from os import system
print "Wollen Sie wirklich den Rechner",
print open("/etc/hosts").read(),
print "herunterfahren?\n> "
answer = raw_input()
if answer in ['y','Y','j','J']:
system("/sbin/reboot")
else:
print "Puuuh, nochmal Glück gehabt, ne?"
g-henna
Edit: Ausführbar machen!!!
follow the penguin...