Operacje poprzez skrypty

Konfiguracja serwerów, usług, itp.
Robert007
Beginner
Posty: 169
Rejestracja: 19 stycznia 2010, 07:39

Operacje poprzez skrypty

Post autor: Robert007 »

Witam serdecznie.

Chciałbym wykonywać operacje na systemie Linux poprzez skrypty za pomocą strony www.
Te polecenia miały by być np.:
  • kopiowanie (cp)
  • nadawanie uprawnień (chmod)
  • edycje pliku
  • itp.
Za pomocą jakich skryptów można to wykonywać aby nie było błędów, typu zbyt szybkiego nadania polecenia zanim się skończy jedno wykonywać?

Czy lepiej jest napisać w bashu czy php?
Lub jak połączyć te dwa języki ale poprzez php nadawanie katalogu do bash?
adam84
Posty: 10
Rejestracja: 10 lutego 2011, 07:24

Post autor: adam84 »

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?
Awatar użytkownika
Bastian
Member
Posty: 1424
Rejestracja: 30 marca 2008, 16:09
Lokalizacja: Poznañ

Post autor: Bastian »

&quot pisze: A tak właściwie to ciekawe czy istnieje inny sposób aby wykonać poprzez PHP funkcje z uprawnieniami roota. Może ktoś wie?
Ustawienie serwera apache na koncie roota, ale to samobójstwo.
Awatar użytkownika
lessmian2
Member
Posty: 1088
Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków

Post autor: lessmian2 »

O sudo koledzy szanowni słyszeli? A zwłaszcza o poprawnie skonfigurowanym sudo ;) Poza tym jak się uprzesz, to i basha przez CGI uruchomisz.
Robert007
Beginner
Posty: 169
Rejestracja: 19 stycznia 2010, 07:39

Post autor: Robert007 »

O sudo koledzy szanowni słyszeli?
Jak to wykorzystać? Głównie chodzi mi o stworzenie własnego panelu do obsługi plików. Coś jak FileManager, tylko że jeszcze dodatkowe procesy.
Awatar użytkownika
lessmian2
Member
Posty: 1088
Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków

Post autor: lessmian2 »

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.
Robert007
Beginner
Posty: 169
Rejestracja: 19 stycznia 2010, 07:39

Post autor: Robert007 »

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.
Awatar użytkownika
lessmian2
Member
Posty: 1088
Rejestracja: 30 kwietnia 2008, 19:38
Lokalizacja: Kraków

Post autor: lessmian2 »

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.
Robert007
Beginner
Posty: 169
Rejestracja: 19 stycznia 2010, 07:39

Post autor: Robert007 »

Da się może jakoś połączyć bash i php? W sensie formatu (uzupełnienia)

w bashu np:

Kod: Zaznacz cały

cp /home/%s/katalog
Gdzie %s to by była nazwa katalogu który został nadany poprzez php. Da się tak jakoś?
Awatar użytkownika
Bastian
Member
Posty: 1424
Rejestracja: 30 marca 2008, 16:09
Lokalizacja: Poznañ

Post autor: Bastian »

lessmian2, no tak jakoś zapomniałem o sudo.
&quot 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.
ODPOWIEDZ