Skocz do zawartości

popen, sudo, vi. Czyli jak edytowac plik


MMP

Rekomendowane odpowiedzi

Jeszcze nigdy nie bawiłem się popenem ale potrzebuje edytować plik spod php.

Potrzebuje sie zalogować jako root bo tylko wtedy będe mieć prawa do edycji pliku.

Ma ktoś pomysł jak to wykonać, używając VI?

stopka usunieta z wpoodu wirusa na stronie docelowej

Odnośnik do komentarza
Udostępnij na innych stronach

Używajać funkcji popen musze wykonać takie komendy:

1. "sudo vi /etc/apache2/apache2.conf"

2. Wpisać hasło

3. Kliknąć 'i'

4. Wpisać tekst

5. Zablokować możliwość pisania(CTRL + C)

6. Wpisać ':wq'

Koniec, narazie mam taki kod

$f = popen( "sudo vi /etc/apache2/apache2.conf","w" );
fputs( $f, "\n" );
fputs( $f, "pass" );
fputs( $f, "\n" );
fputs( $f, "i" );
fputs( $f, "\n" );
fputs( $f, "bzik" );
fputs( $f, "\n" );
fputs( $f, chr(03) );
fputs( $f, ":wq" );
pclose($f);

Niestety nie działa, ani nie ma błędu ani nie dopisuje wartości

stopka usunieta z wpoodu wirusa na stronie docelowej

Odnośnik do komentarza
Udostępnij na innych stronach

Nie jestem pewien ale moze chodzi o to, ze vi nie czyta przez pipe ,

tzn: komenda 'echo "cos tam cos tam" | vi nie wpisze (zdaje sie ) do vi aja tekstu

musialbys dobrac sie do strumienia poloczyc go z wejsciem vi'aja i pisac do tego strumienia,

a czemu wogole uzywasz tu vi'aja, otworz plik i go zmien bez uzywania vi

Odnośnik do komentarza
Udostępnij na innych stronach

Nie jestem pewien ale moze chodzi o to, ze vi nie czyta przez pipe ,

Samo vi działa z popen ale jak chce połączyć to z sudo to już nie

a czemu wogole uzywasz tu vi'aja, otworz plik i go zmien bez uzywania vi

Fopen wywali brak zezwoleń edytując konfig apacha :-)

możesz wyjaśnić co chcesz zrobić ?

Właśnie chodzi o to by ze strony WWW dokonać zmian w konfiguracji apache

chyba prościej byłoby zaprząc do tego basha, z poziomu powłoki masz przecież dobry dotęp do stdin i stdout.

Zbyt skomplikowane :D

stopka usunieta z wpoodu wirusa na stronie docelowej

Odnośnik do komentarza
Udostępnij na innych stronach

Jakiś panel admina jak widzę ;) Takie rzeczy pisze się raczej w PERL'u niż w php.

Fopen wywali brak zezwoleń edytując konfig apacha :-)
Może skopiuj sobie na początek plik w miejsce tymczasowe, zmień chmod'y, wyedytuj, skopiuj w odpowiednie miejsce, chmody i tyle.

Dała matka rozum? To kombinuj.

Odnośnik do komentarza
Udostępnij na innych stronach

Nie wiem, bo już jestem zmęczony ale: jeżeli odpalasz skrypt php, to jest on wykonywany z poziomu użytkownika, który prawdopodobnie nie ma dostępu do sudo (nobody, czy jakiś inny, ale nie MMP ;) ), więc tego nie zrobisz w ten sposób. Spróbuj przełączyć się testowo na roota za pomocą su i zrobić to jako root, a potem na końcu dać exit.

Dała matka rozum? To kombinuj.

Odnośnik do komentarza
Udostępnij na innych stronach

Skrypt jest odpalany przez przeglądarke i wszystko wykonuje user nobody.

Ale php posiada funkcje exec/system/popen które pozwalają wykonywać polecenia spod powłoki. I właśnie w nich sie loguje do roota by zedytować ten jeden plik. A do edycji używam vi :-)

stopka usunieta z wpoodu wirusa na stronie docelowej

Odnośnik do komentarza
Udostępnij na innych stronach

Sprawdź mail roota i powinieneś znaleźć tam raport o błędzie.

Jak pisał Hellz, user nobody napewno nie ma uprawnień sudo. Możesz go dodać edytując plik /etc/sudoers , jednak nie polecam dodawania usera nobody do uprawnień superusera.

Odnośnik do komentarza
Udostępnij na innych stronach

Sprawdź mail roota i powinieneś znaleźć tam raport o błędzie.

Heh gdybym na localu jeszcze miał postawione( a może mam? ) coś do wysyłania maili.

Jak pisał Hellz, user nobody napewno nie ma uprawnień sudo. Możesz go dodać edytując plik /etc/sudoers , jednak nie polecam dodawania usera nobody do uprawnień superusera.

A czy jest możliwość stworzenia nowego usera np. 'superPHP' i używania go gdy w wejde na strone 127.0.0.1/System

I ten user by miał odpowiednie uprawnienia.

stopka usunieta z wpoodu wirusa na stronie docelowej

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności