Skocz do zawartości
Damianoo

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

Rekomendowane odpowiedzi

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 tego posta


Odnośnik do posta
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()?

Edytowane przez Kapitan_Bomba

Udostępnij tego posta


Odnośnik do posta
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 tego posta


Odnośnik do posta
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 tego posta


Odnośnik do posta
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 tego posta


Odnośnik do posta
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 tego posta


Odnośnik do posta
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.

Edytowane przez nnd.newbie

Udostępnij tego posta


Odnośnik do posta
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 tego posta


Odnośnik do posta
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. 

Edytowane przez nnd.newbie

Udostępnij tego posta


Odnośnik do posta
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 tego posta


Odnośnik do posta
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 tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się

  • Przeglądający   0 użytkowników

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

×

Powiadomienie o plikach cookie

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