Morgen,
ich habe ein PHP-Seite, welche mir die folgenden Kommandos auf der Shell ausführt:
1 2 3 4 5 6 7 8 | shell_exec("sudo rm /var/www/html/test/delivery_variables"); $search = $_POST["searchstring"]; // wird per Textfeld übergeben shell_exec("sudo echo '".$search."' >> /var/www/html/test/delivery_variables"); $output = shell_exec("sudo /bin/bash /var/www/html/test/test.bash"); # führt intern eine Suche durch echo "<pre>$output</pre>"; |
Wenn die Rechte wie folgt gesetzt sind (/etc/sudeors), funktionieren alle Befehle:
1 | www-data ALL=(ALL) NOPASSWD: ALL |
Jetzt würde ich natürlich gerne die Rechte der Gruppe www-data auf das Minimum einschränken:
1 2 3 | www-data ALL=(ALL) NOPASSWD: /bin/bash /var/www/html/test/test.bash # 1 www-data ALL=(ALL) NOPASSWD: rm /var/www/html/test/delivery_variables # 2 www-data ALL=(ALL) NOPASSWD: echo * >> /var/www/html/test/delivery_variables # 3 |
Befehl Nr. 1 funktioniert weiterhin Befehl Nr. 2 kann nicht gespeichert werden (>>> /etc/sudoers: syntax error near line 50 <<<)
Ziel ist hier, dass nur das Löschen von /var/www/html/test/delivery_variables erlaubt ist
Befehl Nr. 3 kann nicht gespeichert werden (>>> /etc/sudoers: syntax error near line 51 <<<)
Ziel ist hier, das * als Wildcard genutzt werden kann, um beliebigen Text in die Datei /var/www/html/test/delivery_variables zu schreiben
Verschiedene (" ')-Versuche klappten leider nicht ... Was mache ich falsch bzw. geht es überhaupt so???