Linux runterfahren

Post Reply
Message
Author
Thomas

Linux runterfahren

#1 Post by Thomas »

Hallo zusammen !

Kann man einen Linux-Rechner von einem Windows-"Rechner" aus runterfahren (halt oder shutdown) ?

Folgendes Problem:

Ich habe einen Linux-Server, der als Datenserver und Internetzugang dient.
Mein Kind kann den Linux-Rechner zwar einschalten, aber kann/soll den Rechner nicht einfach nur ausschalten.
Gibt es eine Möglichkeit das er über ein Script (oder ähnliches) den Server runterfährt. Der Server soll nicht 24 Std. laufen, sondern nur wenn er gebraucht wird.

Danke im Voraus

Thomas

Weissi

Re: Linux runterfahren

#2 Post by Weissi »

Also, da gibt es Unterschiede, bei RedHat kann man einfach mit telnet oder ssh(Weiss gerade nicht wie der Client unter Windows heisst) sich einloggen, und dann "halt" ausführen. Dazu müsste ihr Kind sich allerdings an einer Textconsole anmelden, darüberhinaus gibt es z.B. die Möglichkeit(fällt mir jetzt gerade so ein), auf Apache ein Skript, am einfachsten ein PHP-Skript, laufen zu lassen, dass wenn man auf einen bestimmten Link klickt den Rechner runterfährt. Da müsste man allerdings aufpassen, dass das auch _NUR_ von dem Windows-Rechner und nicht von überall auf der Welt geht ;)

Sonst kann man wenn man z.B. ein bisschen programmieren kann eine kleine TCP/IP-Client/Server-App machen, zu der man unter linux den server, der bei einem Befehl von dem Client, der unter Windows läuft einen Befehl ausführt, dann also halt
Ich hoffe, die teilweise ausgefallenen Ideen helfen dir (weissi@tux4u.de)

Thomas

Re: Linux runterfahren

#3 Post by Thomas »

Hi !

Danke erstmal für die schnelle Antwort !

Also, mein Kind hat keine! Computer erfahrung, geschweigeden dass er mit Linux was anfangen könnte.
Deshalb sollte er den Server mit einem einfachen Klick runterfahren können.
Zum PHP unter Apache:
Ich wollte es nicht so "kompliziert" machen und dachte es gibt irgendwie ein fertiges script oder Programm, was das erledigt.
Tja, falls nicht muss ich mich wohl wirklich mal intensiver mit der programmierung beschäftigen.
Falls alle Stricke reissen muss er den Server eben auschalten, so wichtige daten sind da ehh nicht drauf.

Trotzdem danke für den Tip

Thomas

philipp-maier

Re: Linux runterfahren

#4 Post by philipp-maier »

Hallo,

> Kann man einen Linux-Rechner von einem Windows-"Rechner" aus runterfahren (halt oder >shutdown) ?

Einfach mit Telnet einloggen und dann ganz normal mit Halt runterfahren

>Ich habe einen Linux-Server, der als Datenserver und Internetzugang dient.
>Mein Kind kann den Linux-Rechner zwar einschalten, aber kann/soll den Rechner nicht einfach >nur ausschalten.
>Gibt es eine Möglichkeit das er über ein Script (oder ähnliches) den Server runterfährt. Der >Server soll nicht 24 Std. laufen, sondern nur wenn er gebraucht wird.

Am einfachsten geht das runterfahren wenn man in der Shell »halt« eingibt. Dann fährt der Rechner ganz von selber herunter und wenn »master resource control: Runlevel 0 -- reached« erscheint dann kann man den Rechner runterfahren.

Allerdings muß ihr Kind dafür Ihr root-Passwort kennen weil nur root den rechner herunterfahren kann.

Ich habe das noch nicht ausprobiert aber es könnte gehen. Sie vershieben den Befehl »halt« aus /sbin nacht /bin. Dann ist ehr für alle user zugänglich und Ihr Kind kann den Rechner auch ohne Root-passwort runterfahren ggf. müssen Sie vielleicht noch etwas an den Zugriffsbits fummeln.

Aber Bedenken Sie: Solche sachen sind immer ein Sicherheitsrisiko !

Mit freundlichen Grüßen
Philipp Maier

Thomas

Re: Linux runterfahren

#5 Post by Thomas »

Hi Phillip Maier !

Wie ich einige Sekunden voher geschrieben hatte ( ich tippe immer noch mit nur zwei Fingern <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle"> ), ist mein Junge eben nicht soweit das er etwas mit Linux anfangen könnte und deshalb soll er sich auch nicht unbedingt alls root/su anmelden dürfen (macht ja nur neugierig).
Den Tip mit dem >halt< als normaler user (/usr/bin/halt) werde ich mal ausprobieren. Dann kann ein script garnicht mehr so schwer zu schreiben sein (hoffe ich).

Danke

Thomas

Sebastian Ude

Re: Linux runterfahren

#6 Post by Sebastian Ude »

Das Binary nach /bin oder /usr/bin zu verschieben bringt ziemlich wenig.
Wenn das gehen würde, könnte ja jeder User halt / shutdown mit absoluter Pfadangabe (also /sbin/halt) aufrufen und die Kiste runterfahren ...

Was geht: Einen User für das Kind anlegen (falls noch nicht geschehen), und diesem User in der /etc/sudoers erlauben, die Programme halt bzw. shutdown mit root-Rechten auszuführen (dazu siehe 'man sudoers').

Auf diese Art und Weise kann das Kind nicht so viel kaputt machen, da er das root-Passwort nicht kennen muss, und lediglich über sudo ein einziges, mehr oder weniger harmloses, Programm (halt / shutdown) mit root-Rechten ausführen darf.

thone
Posts: 2
Joined: 24. Mar 2001 19:44
Location: Berlin

Re: Linux runterfahren

#7 Post by thone »

OK Danke erstmal !

Ich hatte gehofft es gibt irgendein "Pauschalprogramm" was das erledigen könnte.
Scheinbar ist es doch schwieriger als ich dachte.

Trotzdem Danke für die Tipps

Bis denne

Thomas

Sebastian Ude

Re: Linux runterfahren

#8 Post by Sebastian Ude »

Moment, ich hab noch einen <img src="http://www.pl-forum.de/UltraBoard/Images/Happy.gif" border="0" align="middle">.

Also, schreib dir ein kleines, grafisches Programm mit einem schönen Button "Shutdown", dass beim drücken des Buttons den halt-Befehl aufruft.

Jetzt startest du auf dem Windows-Rechner per Autostart einen X-Server (WinaXe etc.), und auf dem Linux-Rechner per Init ein Script, dass die $DISPLAY-Variable entsprechend setzt (export DISPLAY=192.168.1.2:0, wobei 192.168.1.2 die IP des Win-Rechners ist) und dann das besagte Programm startet.

Das Kind hat nun den Knopf auf seinem Windows-Desktop, und wenn es ihn drückt, wird der Rechner runtergefahren.

Achso, das mit dem Programm ist kein Ding. Etwas a'la dem hier dürte es tun:

/* (c) 2000 Sebastian Ude */
#include <gtk/gtk.h>
#include <stdio.h>

/* Der auszuführende Befehl */
#define SHUTDOWN_CMD "halt"

void shutdown()
{
system(SHUTDOWN_CMD);
}

int main(int argc, char **argv)
{
GtkWidget *window, *button;
gtk_init(&argc, &argv),
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_container_set_border_width(GTK_CONTAINER(window), 10);
button = gtk_button_new_with_label(" Herunterfahren ");
gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(shutdown), NULL);
gtk_container_add(GTK_CONTAINER(window), button);
gtk_widget_show_all(window);
gtk_main();
return 0;
}

Abspeichern unter wasweisich.c, compilieren mit:

gcc -o wasweisich wasweisich.c 'gtk-config --cflags --libs'

Sebastian Ude

Re: Linux runterfahren

#9 Post by Sebastian Ude »

Sorry, ich sehe gerade es sollte

#include <stdlib.h>

statt

#include <stdio.h>

heissen.

Hansi

Das geht doch einfacher!

#10 Post by Hansi »

Hallo!

Es gibt schon eine einfache Lösung, die zwar der Tastatur des Servers bedarf, aber KEIN Paßwort oder ähnliches.
Es muß nur in /etc/inittab die Zeile

ca::ctrlaltdel:/sbin/shutdown -h -t 4 now

(so muß sie lauten, meist ist shutdown -r eingetragen).
Nun kann der Rechner mit CTRL-ALT-DEL heruntergefahren werden.

Wenn es ohne Monitor gehen soll, ließe sich noch in das "halt"-Skript unter /etc/init.d (allg.) oder /sbin/init.d (Suse) VOR dem eigentlichen halt-Befehl einmal oder mehrfach folgendes einfügen:

echo -ne "\007"
sleep 1

das gibt einen Piepton aus, damit man weiß, wann man den Rechner ausschalten kann.
Wobei... bei ATX-Netzteilen kann das ja entfallen, das schaltet selbst ab.

Viele Grüße,

Hansi

Hansi

Das geht doch einfacher!

#11 Post by Hansi »

Hallo!

Es gibt schon eine einfache Lösung, die zwar der Tastatur des Servers bedarf, aber KEIN Paßwort oder ähnliches.
Es muß nur in /etc/inittab die Zeile

ca::ctrlaltdel:/sbin/shutdown -h -t 4 now

(so muß sie lauten, meist ist shutdown -r eingetragen).
Nun kann der Rechner mit CTRL-ALT-DEL heruntergefahren werden.

Wenn es ohne Monitor gehen soll, ließe sich noch in das "halt"-Skript unter /etc/init.d (allg.) oder /sbin/init.d (Suse) VOR dem eigentlichen halt-Befehl einmal oder mehrfach folgendes einfügen:

echo -ne "\007"
sleep 1

das gibt einen Piepton aus, damit man weiß, wann man den Rechner ausschalten kann.
Wobei... bei ATX-Netzteilen kann das ja entfallen, das schaltet selbst ab.

Viele Grüße,

Hansi

Benni

Re: Linux runterfahren

#12 Post by Benni »

Hi Thomas,

bei dem freien Online-Magazin Linuxfocus.org gab's mal eine Bauanleitung für einen einfachen Taster am Seriellen Port, mit 2 Leuchtdioden, mit dem man den Server durch simples drücken des Tasters runterfahren kann. Und das ensprechende C-Programm gibt's dort auch.

Hier der Link:

<a href="http://www.linuxfocus.org/Deutsch/Janua ... e186.shtml" target="_blank"><!--auto-->http://www.linuxfocus.org/Deutsch/Janua ... <!--auto-->

Allerdings solltest Du dazu schon ein Elektronik-Bastler sein und man muss zum Server direkt hin gehen.

Ansonten könntest Du, ähnlich wie es Weissi gesagt hat, den Server als Startseite in Deinem Browser einstellen und dort dann per CGI und Perl einen Button anbieten, der dann durch ein Script eben "halt" ausführt. Dabei sollte man aber auch checken, ob die Anfrage aus dem lokalen Netz kommt. Das ist leicht zu realisieren und läuft auch unter jedem Betriebssystem. Wenn ich jetzt mehr Zeit hätte, würde ich Dir vielleicht noch ein Script posten... Sorry.

Naja, ich hoffe ich konnte ein bisschen helfen...

Viel Erfolg!

Benni

weissi
Posts: 40
Joined: 24. Mar 2001 20:16
Location: Freiburg
Contact:

Re: Linux runterfahren

#13 Post by weissi »

Hi, also wenn du willst, könnte ich schnell einen kleinen TCP/IP-Server schriben, der (wie in meinem ersten Beitrag) den Server bei Kontakt runterfährt, allerdings hab ich keinen blassen Schimmer, wie man den dazu passenden Client als Windows(DOS)-Programm schreibt.

Weissi
PS: Ich müsste nicht viel für den Server tun ;), denn bei uns in der Schule hab ich einen Client, einen Server und ein Programm für MessageBoxes(unter KDE2) geschrieben. Das Programm funzt so: der Server läuft, wenn jetzt einer der root's den Client mit der IP und der Message schreibt, erscheint bei dem Rechner mit der IP eine Box mit dem Text. Wenn ich dem Server jetzt also sagen würde, anstatt dem MessageBox-Proggi halt o.ä. auszuführen, wäre das kein Problem. Aber wie gesagt, es fehlt ein Win(DOS)-Client

Post Reply