Hallo, Am Samstag, 8. Januar 2005 13:47 schrieb Roger Neuburg:
Am Samstag, den 08.01.2005, 13:05 +0100 schrieb Jan Trippler:
[..] Mit: programm parameter1 \; /bin/bash hast Du gleich ne root-Shell.
Ich habe den Thread nicht verfolgt, aber sudo ist doch sicher schon genannt worden, oder? [..]
Ja, wurde vorgeschlagen. Jetzt muß ich mich wieder als Newbee bezeichnen, was ich wahrscheinlich auch noch bin. Von dem was in dem oberen Textteil steht, habe ich nur die Hälfte verstanden. Also ich habe das Programm, so wie in der Anleitung des Kollegen beschrieben, gebaut. Es funktionert auch. Die Probleme welche sich daraus ergeben, sind für mich als Newbee nicht ganz verständlich. Vieleicht könnt Ihr mir, in für Newbees vertändlichem Format, erklären was genau passieren kann, wenn ich das Netzwerk mit dem oben genannten Proggi starte.
Das C-Programm prüft nicht genau, mit welchen Argumenten es aufgerufen wird. Es dürften eigentlich nur Argumente wie start, stop, restart oder so sein. Dass das Programm dann aber auch Befehle ausführt, die mit ; einfach hintendran gehängt werden, wurde wohl nicht bedacht. Also wenn irgendein User auf deinem Rechner das Programm ausführt, und dabei noch andere Argumente anfügt, wie Jan das gezeigt hat, kann er mit root-Rechten alles Mögliche anrichten. Oder halt einfach eine root-Shell starten und dann alles Mögliche machen. Da wohl nur du und $Tochter den Computer nutzen, dürfte sich das Risiko in Grenzen halten. Allerdings sollte man soetwas eigentlich gar nicht erst zulassen, da es so oder so ein riesiges Sicherheitsloch ist, das auch von irgendwelchen Skripten ausgenutzt werden kann, sofern diese wissen, dass es existiert... Wenn du deiner Tochter das Root-PW nicht anvertraust, löst das IMHO auch "kriminelle Energie" aus, weil sie vermutlich nach 2 Minuten gogeln auf den Bootparameter init=/bin/sh stoßen wird und dann hat sie ihre root-Shell, sofern du den physikalischen Zugriff auf den Rechner nicht auch einschränkst...
Aber ich werde es auch mit Sudo versuchen, wenn dies sicherer ist.
Dafür habe ich hier mal einen Thread aus dem Archiv herausgesucht: http://lists.suse.com/archive/suse-linux/2004-Jan/1971.html Wenn dir das zu kompliziert ist, kannst du ja auch einfach (hat das schon jemand genannt?) in /etc/init.d/rc5.d eine Datei mit Namen S99 anlegen, in der folgendes drin steht: #!/bin/bash rcnetwork restart Dann noch chmod +x drauf machen und es sollte gehen ;-) Diese Datei wird zuletzt bei Eintritt in Runlevel 5 ausgeführt und somit birgt das IMHO auch kein Sicherheitsrisiko. Alternativ kannste auch etwas ähnliches in /etc/init.d/boot.local machen... Gruß Sören