Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: JaK wykonac skrypt napisany w bashu (linux) z poziomu php
Forum PHP.pl > Forum > Gotowe rozwiązania
_scorpio__
Jak wykonac skrypt napisany w bashu z poziomu php/ questionmark.gif Normalne programy typu iptables po nadaniu praw suid wykonuje
[php:1:d4390296fa]
<?
exec("iptables -t nat -nL");
?>
[/php:1:d4390296fa]
w ten sposob ale sposob ten nie dziala gdy sie chce wykonac skrypt bashowy. Czy ktos moze mnial juz z czyms takim stycznosc questionmark.gif
adwol
Cytat
Jak wykonac skrypt napisany w bashu z poziomu php/ questionmark.gif Normalne programy typu iptables po nadaniu praw suid wykonuje
[php:1:d3c49376e2]
<?
exec("iptables -t nat -nL");
?>
[/php:1:d3c49376e2]
w ten sposob ale sposob ten nie dziala gdy sie chce wykonac skrypt bashowy. Czy ktos moze mnial juz z czyms takim stycznosc questionmark.gif

Założenie suida skryptom nic nie daje. Jeśli bardzo chcesz w ten sposób uruchamiać zewnętrzne suidowe skrypty (choć to bardzo nie polecane) musisz użyć binarnego wrappera.
_scorpio__
Cytat
Cytat
Jak wykonac skrypt napisany w bashu z poziomu php/ questionmark.gif Normalne programy typu iptables po nadaniu praw suid wykonuje
[php:1:218704257d]
<?
exec("iptables -t nat -nL");
?>
[/php:1:218704257d]
w ten sposob ale sposob ten nie dziala gdy sie chce wykonac skrypt bashowy. Czy ktos moze mnial juz z czyms takim stycznosc questionmark.gif

Założenie suida skryptom nic nie daje. Jeśli bardzo chcesz w ten sposób uruchamiać zewnętrzne suidowe skrypty (choć to bardzo nie polecane) musisz użyć binarnego wrappera.


Wj w sumie janie musze uruchamiac suidowych skryptow bashowych ja chce ogolem uruchamiac bashowe skrypty i nie wiem jak sad.gif
I nie ma innego wyjscia - jesli nie przybliz mi temat tego binardego wrappera jak mozesz
adwol
Cytat
Wj w sumie janie musze uruchamiac suidowych skryptow bashowych ja chce ogolem uruchamiac bashowe skrypty i nie wiem jak sad.gif

Uruchamanie skryptów działa tak samo jak każdego innego programu. Nie będzie Ci tylko działał suid na skrypcie. Możesz to zrobić tak jak zacytowałeś za pomocą exec() lub system().
Cytat
I nie ma innego wyjscia - jesli nie przybliz mi temat tego binardego wrappera jak mozesz

To nie jest żadne cudo. Po prostu binarka, która nie robi nic innego jak exec na skrypt i sama posiada suida. Można tam wsadzić również dla podniesienia bezpieczeństwa wywalanie ze środowiska zbędnych zmiennych i ew. zaszyć na stałe (jeśli sytuacja pozwala) parametry dla tego skryptu.
Przykładem takiego wrappera, choć przystosowanego do ciut innych działań, jest suexec z apache'a.
_scorpio__
Ej odnosnie uruchamiania skryptow z poziomu php jest problem bo sie nie wykonuja na przyklad
mam plik utworz w katalogu /etc w jego zawartosci jest mkdir /etc/poczta
jesli ucuhomie to z shhela tworzy katalog poczta w etc czyli wszystko gra.
Teraz php mam taki skrypt
[php:1:f80e9affc8]
<?
exec("/etc/utworz");
?>
[/php:1:f80e9affc8]
i tu juz sie wykrzacza nie tworzy tego
dodam jeszcze ze apach zwraca mi takie logi

mkdir: cannot create directory `poczta': Permission denied

Co do system to ma chyba takie samo zastosowanie ale nie jestem pewien tego i nie znam urzycia tego.
adwol
Cytat
Ej odnosnie uruchamiania skryptow z poziomu php jest problem bo sie nie wykonuja na przyklad
mam plik utworz w katalogu /etc w jego zawartosci jest mkdir /etc/poczta
jesli ucuhomie to z shhela tworzy katalog poczta w etc czyli wszystko gra.
Teraz php mam taki skrypt
[php:1:972b7e87a6]
<?
exec("/etc/utworz");
?>
[/php:1:972b7e87a6]
i tu juz sie wykrzacza nie tworzy tego
dodam jeszcze ze apach zwraca mi takie logi

mkdir: cannot create directory `sd': Permission denied

Co do system to ma chyba takie samo zastosowanie ale nie jestem pewien tego i nie znam urzycia tego.

I nic dziwnego, że się wywala. Do katalogu /etc powinien mieć prawo zapisu tylko root. W shellu pewno miałeś właśnie zalogowanego tego użytkownika, natomiast php pracuje z prawami takiego użytkownika z jakiego chodzi serwer WWW (bo w końcu jest jego częścią), a to przeważnie jest inny niż root (ze względów bezpieczeństwa). Spróbuj stworzyć ten plik w katalogu /tmp -- powinno się udać. smile.gif
_scorpio__
Przykro mi stwierdzic ale fakt jest taki ze tez nie tworzy tego w tempie sad.gif
Nie wiem moze problem tkwi w tym ze to skrypt bashowy bo normalne programy typu iptables uptime reboot dzialaja
adwol
Cytat
Przykro mi stwierdzic ale fakt jest taki ze tez nie tworzy tego w tempie sad.gif
Nie wiem moze problem tkwi w tym ze to skrypt bashowy bo normalne programy typu iptables uptime reboot dzialaja

A jaki jest błąd tym razem?
_scorpio__
Cytat
Cytat
Przykro mi stwierdzic ale fakt jest taki ze tez nie tworzy tego w tempie sad.gif
Nie wiem moze problem tkwi w tym ze to skrypt bashowy bo normalne programy typu iptables uptime reboot dzialaja

A jaki jest błąd tym razem?


ten sam co wczesniej sad.gif Jesli mozesz moze na gg sie dogadamy bedzie szybciej 5957964
spenalzo
Nie wiem czy w ogóle o to chodzi ale w manualu znalazłem coś takiego:
[php:1:8b7376f617]<?php
#!/usr/bin/php
?>[/php:1:8b7376f617]
_scorpio__
Cytat
Nie wiem czy w ogóle o to chodzi ale w manualu znalazłem coś takiego:
[php:1:d2deac8013]<?php
#!/usr/bin/php
?>[/php:1:d2deac8013]

heh nie mam zielonego pojecia o co w tym chodzi ale ja znalazlem cos takiego
[php:1:d2deac8013]
<?
exec("/bin/sh nazwa skryptu");
?>
[/php:1:d2deac8013]
Noi musze powiedziec ze to dziala bo wykonuja sie skryptu
uboottd
A jaka w takim arazie jest pierwsza linia Twojego skrypta ?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.