Aktywne Wpisy

Pokojowa +156
źródło: temp_file2977024497092214292
Pobierz
GangKobry +333
Pogryziony przez psy kierowca mimo 8 godzinnej operacji, zmarł dziś rano.
Psy które tym razem zagryzły człowieka już wcześniej zaatakowały inną kobietę i nic od tamtej pory z nimi nie zrobiono. Dramat...
I jeszcze ta niedawna sprawa gdzie zatrzymano mężczyznę za to że się bronił przed agresywnym psem i dostał zarzut znęcania się nad zwierzętami...
#
Psy które tym razem zagryzły człowieka już wcześniej zaatakowały inną kobietę i nic od tamtej pory z nimi nie zrobiono. Dramat...
I jeszcze ta niedawna sprawa gdzie zatrzymano mężczyznę za to że się bronił przed agresywnym psem i dostał zarzut znęcania się nad zwierzętami...
#
źródło: temp_file5918776642854572190
Pobierz




tmpfs /var/tmp tmpfs nodev,nosuid,size=1M 0 0
Tworzy ona katalog /var/tmp i przypisuje go do ramu. Za pomocą skryptu w #python umieszczam w nim jakiś plik. Wszystko działa. Teraz potrzebuję mieć dostęp do tego pliku z poziomu serwera www - ze skryptu php. Napisałem sobie dodatkowy skrypt w pythonie, który zwróci zawartość tego pliku. Kod napisany w pythonie:
path = "/var/tmp/plik"if os.path.exists(path):
with open(path , 'r') as myfile:
data=myfile.read()
sys.exit(data)
I teraz najlepsze. Gdy wywołam skrypt normalnie z konsoli (jestem zalogowany na konto "pi") to wszystko pięknie działa. Natomast gdy wywołam skrypt z poziomu php:
$ouput = shell_exec("/home/pi/skrypt.py 2>&1");To skrypt wykonuje się poprawnie, natomiast wywala się na if os.path.exists(homepath): ponieważ plik według niego nie istnieje. A wywołując z usera "pi" istnieje...
Dodałem wpis w /etc/sudoers:
www-data ALL=(ALL) NOPASSWD: /home/pi/skrypt.py
www-data ALL=(ALL) NOPASSWD: /var/tmp/
Nie działa. Próbowałem wpisywać komendy:
sudo chown -R pi:www-data /var/tmp/plik
sudo chown www-data:www-data /var/tmp/
sudo chmod -R 777 /var/tmp/
Nadal bez skutecznie... Jak mogę rozwiązać problem?
Jesteś pewien że PHP wykonuje się na userze www-data?
www-data ALL=(ALL) NOPASSWD: /home/pi/skrypt.py
Wykonując kod:
$output = shell_exec("ls /var/tmp/");Niestety dostaję nulla.
Gdzie jakis_plik musi byc w katalogu z prawami gdzie twoj php moze pisac
Nastepnie przeklej mi ten plik na jakis pastebin czy cos
Tutaj cały skrypt: https://pastebin.com/uyMVVQqL
Po wpisaniu: ls -la /var/tmp
miałem do tego skryptu i folderu użytkownika "root". Zmieniłem to:
sudo chown www-data:www-data folder i plik
Ale bez poprawy. Skrypt python się wykonuje z shell_exec ale nie ma on dostępu do pliku /var/tmp/home. Zaś wykonując ten sam skrypt z poziomu konsoli z konta "pi" wszystko gra..
Widze w tym logu co podeslales ze skrypt zwraca błąd z braku parametru
command = ''.join(sys.argv[1]) #' '.join(sys.argv[1:]
list index out of
https://pastebin.com/zPcBpGzA
Po wywołaniu:
$output = shellexec("/home/pi/home.py gethome 2>&1");
Dostaję zwrotkę:
0 get
To aktualny plik, bo zapomniałem jeszcze utworzyć tego właściwego pliku w katalogu /var/tmp
Możesz w skrypcie pythonowym wywołać pwd lub ls żeby się zorientować do jakiego katalogu chroot cię ogranicza.