Owe funkcje można bez problemu wykonać w PHP. Oczywiście jeśli nie potrzebujesz do tego uprawnień roota.
Ja rozwiązałem problem z wykonywaniem czynności z uprawnieniami roota dając w CRONie 60x pętlę ze sleep(1) która wykonuje pobrane z pewnego miejsca funkcje poprzez exec();
A tak właściwie to ciekawe czy istnieje inny sposób aby wykonać poprzez PHP funkcje z uprawnieniami roota... Może ktoś wie?
Sudo było odnośnie wykonywania poleceń jako root. Jeśli chcesz uruchamiać ze skryptów php polecenia powłoki, zainteresuj się funkcjami z rodziny system/exec -> http://php.net/exec
Ale moim zdaniem to jest średni pomysł - jeden błąd w kodzie albo źle pomyślane rozwiązanie i masz przejęty serwer.
Sudo było odnośnie wykonywania poleceń jako root. Jeśli chcesz uruchamiać ze skryptów php polecenia powłoki, zainteresuj się funkcjami z rodziny system/exec -> http://php.net/exec
Ale moim zdaniem to jest średni pomysł - jeden błąd w kodzie albo źle pomyślane rozwiązanie i masz przejęty serwer.
To oczywiste. Dlatego też pytam jakie są sposoby inne gdzie błąd nie wystąpi.
Robert007 pisze:To oczywiste. Dlatego też pytam jakie są sposoby inne gdzie błąd nie wystąpi.
Nie ma takich W każdym rozwiązaniu trzeba dbać o bezpieczeństwo.
Lepszym rozwiązaniem (moim skromnym zdaniem, a programistą nie jestem) byłoby podzielenie systemu na frontend - klikalne coś, np. w php i backend wystawiający jakieś API. Aplikacja, w której porusza się klient odwołuje się do metod wystawianych przez backend i tylko do tego ma dostęp. Backend realizuje już żądania na niższym, systemowym poziomie.
Oczywiście i to rozwiązanie ma swoje wady (np. większy stopień skomplikowania) i też nie ustrzeże przez badziewnym kodem. Wszystko zależy od zaprojektowanego rozwiązania i tego jak się je zaprogramuje.
" pisze:Da się może jakoś połączyć bash i php? W sensie formatu (uzupełnienia)
lessmian2 podał rodzinę funkcji, które na to pozwalają. Cała kwestia dzielenia frontentu i backendu jest dobra. Trzeba niemniej pomyśleć jak to zaprogramować. Frontend musi przekazywać, neutralne wartości do backendu, tak aby niemożliwe było wstrzyknąć cokolwiek z poziomu http. Backend może mieć dostęp do wybranych poleceń systemowych właśnie przez exec() i sudo i chyba nawet nie musi być na właściciela apache.