php & exec
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
absolut bescheuerte idee
administrative aufgaben
aktualisieren
angreifer
anmerkung
befehl
code
erledigen
geschrieben update
kunst
machen
meinung
nutzer
problem
server
sinn
subversion
system
trunk
update
-
Hallo, ich habe folgendes Skript geschrieben
update.php
<?
error_reporting(E_ALL);
exec(\"sudo /root/bin/svn checkout svn://server.de/svnpath/trunk v_01.a\", $out,$retc);
echo $retc;
if($retc==0) {
echo \"redirect\";
}
else {
print_r($out);
}
?>
Der Befehl(sudo /root/bin/svn checkout svn://server.de/svnpath/trunk v_01.a) wird auch als nicht root unter der Kommandozeile ausgeführt. Wenn ich aber über mein Browser das Skript starte, führt er den Befehl nicht aus (RC= 127). kann mir jmd. helfen?
Beitrag geändert: 1.6.2008 11:42:22 von olijun -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
ich hatte auch schon ähnliche probleme.
liegt wohl an der funktion \"exec\";
1. Probiers mal mit shell_exec()
2. starte es über die cmd.exe mit \"passthru(\'cmdbefehl\')\" -
exec(\"sudo /root/bin/svn checkout svn://server.de/svnpath/trunk v_01.a\", $out,$retc)
Äh, wieso hast du Subversion in das Home-Verzeichnis von Root installiert?
Ich rate dir dringend dazu das ganze neu zu installieren und zwar dieses mal in die normalen Programmverzeichnisse. Dann kannst du svn auch ohne Probleme als normaler User ausführen.
Anmerkung: Der Webserver läuft in der Regel als User www-data. Dieser User ist mit sehr hoher sicherheit nicht in der Datei /ect/sudoers verzeichnet und das ist auch gut so!
Folglich kann www-data nicht zu root werden.
Anmerkung2: sudo erwartet noch ein Passwort, dass eingetippt werden muss. Diese Eingabe muss über die Tastatur erfolgen und kann nicht automatisch ausgeführt werden.
Beitrag geändert: 1.6.2008 11:46:45 von bladehunter -
das svn kann ich neuinstallieren
aber die sudo hab ich so angepasst, dass man kein PW eingeben muss und jeder nutzer das svn ausführen kann... -
das svn kann ich neuinstallieren
aber die sudo hab ich so angepasst, dass man kein PW eingeben muss und jeder nutzer das svn ausführen kann...
Das ist nicht dein Ernst?
Es hat sehr gute Gründe, warum es einen root-Account gibt und warum dieser geschützt ist.
Außerdem frage ich mich, was du mit dem Script bezweckst. Ein svn checkout sollte man eigentlich nur manuell ausführen, nämlich dann, wenn man selber denkt, dass es jetzt passend ist. So kann man dann auch besser auf entsprechende Entwicklungen reagieren. -
wenn ich dem svn skript root rechte geb, ist das doch nicht verwerflich...dafür gibt es doch das sudo(oder was meinst du speziell)
und das svn update will ich halt manuell ausführen, wenn ich lokal bei mir was eingecheckt habe und das auf dem server aktualisieren möchte. (macht meiner meinung nach sinn)
2. Beitrag
habs jetzt hinbekommen, danke ;)
Beitrag geändert: 1.6.2008 14:09:37 von tct -
wenn ich dem svn skript root rechte geb, ist das doch nicht verwerflich...dafür gibt es doch das sudo(oder was meinst du speziell)
Also, nochmal zum Mitschreiben: Der root-Account ist dazu da, Administrative Aufgaben zu erledigen. Root kann alles und darf alles. Er darf also auch dein System schrotten.
Und ein Linux System zu schrotten ist wirklich keine Kunst. Es ist alles andere als unwahrscheinlich, dass man als root unachtsam ist und dann richtig dicke Scheiße baut.
Man sollte nur als root arbeiten, wenn man wach und konzentriert ist und genau weiß, was man tut.
Der sudo Befehl ist eben dazu da, dass man nur einmal kurz, wenn es notwendig ist, eine administrative Aktion durchführen kann, um danach sofort wieder als normaler User weiterarbeiten zu können.
Um also auf das Zitat zurückzukommen: Es ist verwerflich, da es Sicherheitsrelevant ist.
Und automatisierter root-Zugriff wie in deinem Code ist auch ein Sicherheitsrisiko. Wenn Subversion jetzt eine Sicherheitslücke hätte, dann hätte ein Angreifer direkt root-Rechte und kann mit deinem System machen, was er will.
Entsprechend ist es auch eine absolut bescheuerte Idee sudo ohne Passwort einzurichten. Es muss nur irgendwo eine Sicherheitslücke im System sein, so dass ein Angreifer z.B. in deinen User-Account eindringen kann. Wenn jetzt auch noch sudo ohne Passwort arbeitet, dann ist der Angreifer direkt root.
und das svn update will ich halt manuell ausführen, wenn ich lokal bei mir was eingecheckt habe und das auf dem server aktualisieren möchte. (macht meiner meinung nach sinn)
Must du selber wissen. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage