Ratti:
Für Kleinstkram über den Browser:
http://meinrouter.local/shutdown http://meinrouter.local/reboot
Alles CGIs. Kann man noch gegen Mißbrauch absichern, aber ich habe nicht so wirklich Panik davor, jemand könnte aus dem Netz meinen Rechner rebooten.
Michael Frank
Kannst Du die CGIs hier mal posten oder mir sonstwie zukommen lassen (PM)? Wäre sehr interessiert daran.
Die CGIs selbst sind nicht so sehr das Problem. Zum Beispiel /usr/local/apache/cgi-bin/reboot: #!/bin/sh sudo /sbin/shutdown -r now Das schmeisst übrigens 'ne Fehlermeldung im Browser, funktioniert aber trotzdem. Hier fehlt nämlich der HTML-Header, aber das ist mir sowas von egal, die Kiste ist ja sowieso schon auf dem Weg zum reboot. Das eigentliche Problem ist, daß der Apache-User "wwwrun" nicht das recht hat, einen reboot auszuführen. Deswegen wird das ganze über sudo gestartet, damit apache rootrechte erlangt. Die Datei, um das zu konfigurieren, verhält sich ähnlich wie die bearbeitung von cronjobs, das heisst: Man bearbeitet sie nicht "direkt", sondrn über ein spezielles Tool. Äquivalent zu crontab- e ist das hier "visudo". Tipp das ein. Das ist meine Konfig: # sudoers file. # # This file MUST be edited with the 'visudo' command as root. # # See the sudoers man page for the details on how to write a sudoers file. # # Zielbenutzer Alias Spezifikation Runas_Alias RSHUTDOWN=root # Host alias specification Host_Alias HSHUTDOWN=192.168.0.0/255.255.255.0 # User alias specification User_Alias USHUTDOWN=nobody # Cmnd alias specification Cmnd_Alias CSHUTDOWN=/sbin/shutdown -h now,/sbin/shutdown -r now # User privilege specification root ALL=(ALL) ALL USHUTDOWN HSHUTDOWN = NOPASSWD: CSHUTDOWN Damit werdne die Befehle /sbin/shutdown -h now und sbin/shutdown -r now freigeschaltet. sudo ist sehr empfindlich in dieser hinsicht, wenn dort steht "/sbin/shutdown", dann muss das GENAU so eingegeben werden, und nicht etwa "shutdown", auch wenn dann das shutdown in /sbin aufgerufen wird. Ich erinnere mich dunkel, daß du einmal als root auf den ausführenden user CUen solltest und den Befehl eingeben, weil dann einmalig ein Belehrungssprüchlein erscheint, welches der Apache gar nicht mag. Ach, und du mußt wohl Pfade und User anpassen. Mein Apache ist selbstgestrickt. Deiner liegt wohl nicht in /usr/LOCAL, und der User, unter dem Apache läuft, ist wohl auch nicht "nobody". Ach, und nochwas: Ich bin kein Security-Experte, und der Rechner, auf dem das bei mir passiert, ist ein von außen nicht erreichbarer CD-Brenn-Rechner. Wenn dir an Systemsicherheit was liegt, betrachte es bitte als Vorlage, nicht als 1:1-Anleitung, ich lege dafür nämlich nicht meine Hand ins Feuer. :-) Gruß, Ratti