Wykonanie przez php skryptu basha

Konfiguracja serwerów, usług, itp.
omeck
Posty: 6
Rejestracja: 10 czerwca 2009, 12:51

Wykonanie przez php skryptu basha

Post autor: omeck »

Mam następujący problem: z poziomu przeglądarki wywołuję prosty skrypt php, który z kolei wywołuje skrypt sh. Ogólnie działa, ale skrypt basha jest wywoływany przez użytkownika www-data, natomiast ja muszę tak zrobić, aby został wywołany przez właściciela. Czy da się to jakoś wykonać? Z góry dziękuję za pomoc.
Intruder
Posty: 8
Rejestracja: 13 września 2008, 14:34

Post autor: Intruder »

Oczywiście, że sie da. Zainteresuj się polecieniami php z grupy ssh2.

http://pl.php.net/manual/pl/book.ssh2.php
http://kevin.vanzonneveld.net/techblog/ ... _with_php/
omeck
Posty: 6
Rejestracja: 10 czerwca 2009, 12:51

Post autor: omeck »

Dzięki za odpowiedź - potestuję :-)
dan-j2
Beginner
Posty: 127
Rejestracja: 17 maja 2007, 13:31

Post autor: dan-j2 »

Zainteresuj sie sudo.
Najprościej wykonujesz przez:

Kod: Zaznacz cały

exec('sudo /lokalizacja_skryptu');


a plik sudoers powinien coś takiego zawierać:

Kod: Zaznacz cały

www-data    ALL=(ALL) ALL
root     ALL=(ALL) ALL
www-data    ALL=(ALL) NOPASSWD: ALL
omeck
Posty: 6
Rejestracja: 10 czerwca 2009, 12:51

Post autor: omeck »

dan-j2 pisze:Zainteresuj się sudo.
Dziękuję, ale nie potrzebuję wykonywać poleceń z poziomu roota, wystarczy "zwykły" użytkownik. Po drugie, jakoś nie podoba mi się, ze względów bezpieczeństwa, dopisanie użytkownika www-data do sudoers.
Awatar użytkownika
lessmian2
Member
Posty: 1088
Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków

Post autor: lessmian2 »

dan-j2 pisze:

Kod: Zaznacz cały

www-data    ALL=(ALL) NOPASSWD: ALL
Oj, takie mało bezpieczne to coś. W takim przypadku www-data może bez hasła uruchamiać dowolny skrypt jako którykolwiek z użytkowników systemowych. Jak już chcesz z innego użytkownika to nie lepiej tak?

Kod: Zaznacz cały

www-data        ALL=(jakiś_użytkownik) NOPASSWD:/jakiś_skrypt.sh
Na pewno będzie bezpieczniej.
Awatar użytkownika
bagsiur
Beginner
Posty: 132
Rejestracja: 01 czerwca 2008, 22:12
Lokalizacja: Będzin

Post autor: bagsiur »

Tylko po co bawić się z sudo skoro mamy biblioteki ssh2.

Możesz użyć jeszcze expect. Krąży opinia że expect daje więcej możliwości od ssh2 i nie ma problemów z kluczami do autoryzacji. Choć moim skromnym zdaniem ssh2 jest bardziej intuicyjne i prostsze więc polecam rozwiazanie które zaproponował Intruder :)
Awatar użytkownika
lessmian2
Member
Posty: 1088
Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków

Post autor: lessmian2 »

bagsiur pisze:Tylko po co bawić się z sudo skoro mamy biblioteki ssh2.
Nie przeczę. Też uważam że są lepsze rozwiązania niż sudo. Ale jeśli już ktoś ma go używać, niech robi to tak, by nie robić luk które można wykorzystać do przejęcia serwera.
ODPOWIEDZ