Skocz do zawartości
Damianoo

Odpalanie SH z PHP z konsoli działa a z przeglądarki już nie

Polecane posty

Hej.

Chce zrobić odpalanie SH z PHP i z konsoli działa a z przeglądarki już nie.

Jak w konsoli wpiszę sobie: php index.php to działa

a jak wejdę przez adres z przeglądarki to wyświetli listę plików z lokalizacji czyli tam dochodzi, ale skryptu sh już nie odpala w log zero błędów.

zawartość index.php:

<?php
system('/var/www/html/tscgpl/hs1/./uruchom.sh');
$output = shell_exec('ls -l /var/www/html/tscgpl/hs1');
echo "<pre>$output</pre>";
?>

Ktoś coś pomoże?

w visudo dodałem odpowiednie wpisy.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

"ls" -> "/usr/bin/ls" ?

 

Teraz doczytałem, że ls się wykonuje. Może więc brakuje /bin/bash w tym system()?

Edytowano przez Kapitan_Bomba

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Godzinę temu, Kapitan_Bomba napisał:

"ls" -> "/usr/bin/ls" ?

 

Teraz doczytałem, że ls się wykonuje. Może więc brakuje /bin/bash w tym system()?

jest 

skrypt sh:

#!/bin/sh
#!/bin/bash
sudo -u hurt /home/hurt/./hwserver start

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Sudo. A z przeglądarki wykonuje się jako root? Może po prostu uprawnienia. Wypisz co Ci zwróci z przegladarki, a co w CLI.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
22 minuty temu, otlet napisał:

Sudo. A z przeglądarki wykonuje się jako root? Może po prostu uprawnienia. Wypisz co Ci zwróci z przegladarki, a co w CLI.

Jak to sprawdzić / co dopisać? Bo nie wiem :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Najprościej odpal PHP CLI będą zalogowany jako user którego utworzyłeś z poziomu jakiegoś tam panelu np jako usera SFTP.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

W konsoli

sudo -u www_user php index.php

gdzie www_user to użytkownik na którym uruchomiony jest serwer WWW (tudzież z którego uruchamiane są procesy PHP przez serwer WWW, ale w najprostszej wersji to będzie ten sam użytkownik). I zobacz czy się uruchamia.

Edytowano przez nnd.newbie

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
3 godziny temu, nnd.newbie napisał:

W konsoli


sudo -u www_user php index.php

gdzie www_user to użytkownik na którym uruchomiony jest serwer WWW (tudzież z którego uruchamiane są procesy PHP przez serwer WWW, ale w najprostszej wersji to będzie ten sam użytkownik). I zobacz czy się uruchamia.

Z konsoli działa tak jak mówiłem zatem odpalanie pliku php w taki sposób mi nic nie da bo ja chce aby odpalony plik php z przeglądarki robił to co ma robić a niestety nie działa z przeglądarki... Z przeglądarki wyświetli tylko ls -l a nie robi tego co wcześniej jest wpisane.

Będę kombinował i dam znać a jak ktoś ma jeszcze jakieś pomoce to będę wdzięczny :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

To co ci podałem to sprawdzenie czy zadziała jeśli uruchomisz skrypt PHP, ale na użytkowniku na którym uruchamiany jest serwer WWW.

 

Wpisując 'php index.php' uruchamiasz  na normalnym użytkowniku, którym jesteś zalogowany. Natomiast użytkownik na którym jest uruchamiany serwer WWW to zazwyczaj zupełnie inny użytkownik i ma często bardzo wiele ograniczeń np. może nie mieć dostępu do bash'a. Albo plik uruchom.sh nie ma nadanych uprawnień do wykonywania dla tego użytkownika.

 

Chyba że mówimy o jakimś hostingu gdzie jest jeden i ten sam użytkownik, ale wtedy najprościej napisać do supportu. 

Edytowano przez nnd.newbie

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
1 godzinę temu, Damianoo napisał:

Prosi o hasło do usera www-data, ale hasła to ja nie znam chyba, że mogę mu jakieś nadać?

 

 

Jeżeli wykonujesz polecienie sudo -u www-data komenda to wpisujesz swoje hasło (zakładając, że masz uprawnienia do wykonywania komend przez sudo).

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Ok zatem

z każdego normalnego usera działa a z www-data nie działa i nie wiem co tam jest za hasło... 

ustawienie hasła z passwd raczej nic mi nie da i nawet nie chce tego robić.

sudo -u www-data php index.php

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for www-data:

w visudo mam tak o:


www-data ALL = (ALL) NOPASSWD: /var/www/html/katalog/
apache2 ALL = (ALL) NOPASSWD: /var/www/html/katalog/
%www-data ALL=(www-data:www-data) NOPASSWD: /var/www/html/katalog/

 

Dobra zrobiłem... 

 

W skrypcie sh, który jednak odpalał apache bo wpisałem ls i pokazywał śmieci.. no w nim dodałem sudo -u 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Dołącz do rozmowy

Możesz pisać i zarejestrować się później. Jeśli masz konto,Zaloguj się teraz, aby publikować na swoim koncie.

Gość
Odpowiedz...

×   Wklejony jako tekst z formatowaniem.   Wklej jako zwykły tekst

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


  • Kto przegląda   0 użytkowników

    Brak zalogowanych użytkowników przeglądających tę stronę.

×
×
  • Utwórz nowe...

Ważne informacje

Korzystając z forum, wyrażasz zgodę na: Warunki korzystania z serwisu, Regulamin, Polityka prywatności.