Portál AbcLinuxu, 30. dubna 2025 21:23

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Vložit další komentář
15.2.2007 15:41 maleprase | skóre: 28
Rozbalit Rozbalit vše Re: PHP potřetí(exec)
Odpovědět | Sbalit | Link | Blokovat | Admin
sudo s NOPASSWD klidne pouzij ale ke kazdemu systemovemu prikazu si udelej skript ktery bude delat jen ciste to co chces vcetne osetreni vstupu

takze udelas treba restart_httpd.sh ve kterym bude jen /sbin/service httpd restart a do sudoerrs das neco jako

uzivatel ALL = NOPASSWD: /usr/local/bin/restart_httpd.sh

tim uzivateli povolis pres sudo poustet jen /usr/local/bin/restart_httpd.sh
15.2.2007 15:44 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: PHP potřetí(exec)
Odpovědět | Sbalit | Link | Blokovat | Admin
Vzhledem k tomu, že tyto aplikace musí běžet pod rootem, obejít to nijak nepůjde, to by to zabezpečení v Linuxu nebylo k ničemu. A jak spustit aplikaci pod rootem, aniž bych byl root? V úvahu připadá suid bit, a to není zrovna nejlepší varianta, a pak sudo. To už je lepší. Můžete si třeba vytvořit nějakého uživatele a sudo povolit jemu, z PHP pak spouštět pod daným uživatelem sudo -u. Samozřejmě je nutné počítat s tím, že kdokoliv může vidět zdrojové kódy toho PHP (nebo nějaký konfigurační soubor, kam uložíte jméno/heslo toho uživatele), může spouštět i ten sudo skript.
15.2.2007 16:10 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: PHP potřetí(exec)
hmm, a takáto možnosť?

ls -l /usr/sbin/suid-php:
-r-sr-x--- root suidphp  suid-php
head -1 aaa.cgi:
#/usr/sbin/suid-php
Josef Kufner avatar 15.2.2007 16:18 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: PHP potřetí(exec)
Spouštět php s právy roota je poněkud, ehm, nebezpečné. Řešení se specializovanými, jednoduchými a neprůstřelnými scripty + sudo je asi nejbezpečnější.
Hello world ! Segmentation fault (core dumped)
15.2.2007 18:11 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: PHP potřetí(exec)
njn, php sux, ale riešenie to je :-)

potom by ešte bolo možné vytvoriť virtual host s iným User ako celý apache, a sudo povoliť len na tohoto užívateľa.

15.2.2007 16:23 maleprase | skóre: 28
Rozbalit Rozbalit vše Re: PHP potřetí(exec)
tohohle bych se bal.

pokud to ma jet jako webova sluzba, pak by musel uzivatel apache(httpd), pod kterym je spusten webserver, byt ve skupine suidphp a to znamena, ze kdokoliv, kdo muze vytvaret skripty na tom stroji, se dostane k pravum roota
15.2.2007 16:24 maleprase | skóre: 28
Rozbalit Rozbalit vše Re: PHP potřetí(exec)
skripty jako ve smyslu muze vytvaret dynamicky generovane stranky
15.2.2007 16:22 Abraxis
Rozbalit Rozbalit vše Re: PHP potřetí(exec)
Odpovědět | Sbalit | Link | Blokovat | Admin
Take jsem totez resil (sprava uzivatelu, skupin, kvot apod. pres webovske rozhrani) a nic lepsiho nez sudo jsem nenasel.

Jen bych doporucil napsat si vlastni funkci: MyExec($command) ktera teprve udela exec ('sudo "'.AddSlashes($command).'"'); (pripadne zalogovani a dalsi veci) a dusledne volat to vzdy pres tuhle funkci.
15.2.2007 16:39 Honza
Rozbalit Rozbalit vše Re: PHP potřetí(exec)
Odpovědět | Sbalit | Link | Blokovat | Admin
Ja podobny problem kdysi resil pres suid C-ckovi wrapper pro perl-ovy skript s zapnutym 'tainted mode'. Perl s touto variantou nejak pocita, jak moc je to bezpecny ale ale otazka...

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.