Heim  >  Artikel  >  Backend-Entwicklung  >  Beim Ausführen von PHP unter Linux gibt das externe Shell-Skriptsystem 126 zurück

Beim Ausführen von PHP unter Linux gibt das externe Shell-Skriptsystem 126 zurück

WBOY
WBOYOriginal
2016-12-01 00:56:422055Durchsuche

<code><?php
$command = '/var/www/html/fzip.out  /var/www/html/test  /var/www/html/test.fzip';
//$command = 'ls /var/www/html';
system($command,$return);
exec($command,$out);
//echo $command;
print_r($return);
echo '<br>=================<br>';
print_r($out);?></code>

Der erste $-Befehl ist Ihr eigenes Shell-Skript. Der Zweck besteht darin, den Ordner des zweiten Parameters auf den Pfad der dritten Datei zu komprimieren. Erzählen Sie mir von der aktuellen Situation.
1 php.ini befindet sich nicht im abgesicherten Modus, daher können Sie ls und andere Befehle normal aufrufen.
2 Das System gibt 126 zurück, wenn dieser Befehl ausgeführt wird, und der zweite Parameter von exec ist leer.
3 Dem HTML-Verzeichnis der generierten Datei wurden 777 Berechtigungen erteilt, und das komprimierte Testverzeichnis verfügt ebenfalls über 777 Berechtigungen
4 Sie können diesen Befehl direkt über die Befehlszeile ausführen

Ist eine Konfiguration erforderlich, um ein solches benutzerdefiniertes Skript auszuführen? ?

Antwortinhalt:

<code><?php
$command = '/var/www/html/fzip.out  /var/www/html/test  /var/www/html/test.fzip';
//$command = 'ls /var/www/html';
system($command,$return);
exec($command,$out);
//echo $command;
print_r($return);
echo '<br>=================<br>';
print_r($out);?></code>

Der erste $-Befehl ist Ihr eigenes Shell-Skript. Der Zweck besteht darin, den Ordner des zweiten Parameters auf den Pfad der dritten Datei zu komprimieren. Erzählen Sie mir von der aktuellen Situation.
1 php.ini befindet sich nicht im abgesicherten Modus, daher können Sie ls und andere Befehle normal aufrufen.
2 Das System gibt 126 zurück, wenn dieser Befehl ausgeführt wird, und der zweite Parameter von exec ist leer.
3 Dem HTML-Verzeichnis der generierten Datei wurden 777 Berechtigungen erteilt, und das komprimierte Testverzeichnis verfügt ebenfalls über 777 Berechtigungen
4 Sie können diesen Befehl direkt über die Befehlszeile ausführen

Ist eine Konfiguration erforderlich, um ein solches benutzerdefiniertes Skript auszuführen? ?

Schließlich habe ich festgestellt, dass die Ausführung durch Selinux blockiert wurde. Ich werde die Ergebnisse als Referenz hinterlassen. Die Leistung besteht darin, dass das Skript im PHP-CLI-Modus normal ausgeführt werden kann und die Ausführung auf der Webseite 126 zurückgibt. Das Hinzufügen von sudo gibt 1

zurück
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn