Cześć,
zacznę od opisu środowiska pracy: Debian Lenny i serwer www Apache, safe_mode = Off . Aktualnie pracuję nad systemem opartym na PHP i komendach przekazywanych z jego poziomu do konsoli linuxa. Komendy, które chcę wykonać to głównie modyfikacje reguł iptables. To coś, do czego wymagane są wyższe uprawnienia niż zwyczajnego użytkownika, a konkretniej www-data, spod którego Apache wywołuje pliki wykonywalne wskazywane przez funkcje exec/system/passthru/backtick operator.
Skrypty uruchamiane z poziomu php wykonują się w zakresie dozwolonych komend (jak np. kopiowanie w obrębie udostępnionych katalogów, zapisywanie do pliku, drukowanie na ekran itp.), natomiast wszystkie polecenia administracyjne:
iptables -F
iptables -P INPUT ACCEPT
iptables -t nat -A POSTROUTING -s 172.20.0.0/24 -j MASQUERADE
są zupełnie ignorowane. Jest to zrozumiałe, ponieważ www-data sam w sobie nie ma dostepu do komendy iptables. Tu zaczyna sie problem: sudo nie pozwala na wywoływanie iptables ("you must be root"), zmiany przynależności www-data do grup/wzorców uprawnień w /etc/passwd nie pomogły, kompilacja Apache w celu wykonywania wszystkich komend jako root zamiast www-data to błąd pod względem zabezpieczeń systemu.
Udało mi się znaleźć na forum kilka postów o pokrewnej tematyce (sugerowane sudo, safe mode), ale nic konkretnego z proponowanych rozwiązań nie wynikło. Czy komuś z Was udało się pokonać opisywany problem?