Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: sudo i exec
Forum PHP.pl > Forum > PHP
WMP
Cześć, mam taki kod:
  1. /etc/sudoers:
  2. Defaults env_reset
  3. Defaults:www-data !requiretty
  4. www-data ALL=(ALL) NOPASSWD:/usr/bin/whoami

  1. $control = Array();
  2. exec('sudo whoami 2>&1', $control);
  3. var_dump($control);


i taki wynik:
array(1) {
[0]=>
string(53) "sudo: no tty present and no askpass program specified"
}

Co musze poprawić aby dostać prawdizwy wynik plecenia whoami? Jeśli normalnie wykonam z basha sudo whoami to mam ładny wynik, bez hasła itepe.
Quadina
Logując się w bashu masz zupełnie inne uprawnienia niż wykonując stronę. Skrypty wykonuje najczęściej user: "apache" albo "www-data", rzadziej "httpgrp". Logując się do basha, jesteś zalogowany jako user którego nazwę użytkownika podajesz. Dodatkowo skrypty PHP mają bardzo ograniczoną możliwość uruchamiania skryptów przez exec i jemu podobne. Stąd też prawdopodobnie Twój problem. Możesz spróbować go ominąć tworząc skrypt .sh który będzie miał w sobie Twoje zapytanie z whoami i to jego spróbuj wykonać przez skrypt PHP. Możesz spróbować też wykonać w PHP Twoją wersję bez sudo - co w niektórych konfiguracjach też jest możliwe. Wszystko zależy od tego gdzie leży Twój hosting.
WMP
Mój hosting leży na moim serwerze(dedykowany), mam ngixa z php-fpm. Co do skryptu sh to można spróbować, jakies inne pomysły?
Quadina
Jeżeli masz dedyka to chyba jest tylko problem z prawami dla php i konfiguracją zabronionych komend dla exec. Ja niestety nie jestem administratorem, więc musimy poczekać na killer129, który zaraz Ci opisze jak to wszystko ominąć smile.gif
bim2
@Quadina
Zobacz, że uprawnienia dla sudo ma poprawnie ustawione.

A spróbuj dać "sudo -u root whoami" ale wtedy dla root dla whoami musisz ustawic NOPASSWD
WMP
Cytat
A spróbuj dać "sudo -u root whoami" ale wtedy dla root dla whoami musisz ustawic NOPASSWD


Mylisz pojęcia, NOPASSWD ustawia się na użytkownika z którego chce się otrzymać prawa roota, w moim przypadku www-data. Nie ma sensu z roota robić sudo.

Jak mówię, z basha wszyztko działa, ze skryptu już niebardzo.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.