Portál AbcLinuxu, 30. dubna 2025 21:23
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
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.
ls -l /usr/sbin/suid-php: -r-sr-x--- root suidphp suid-php
head -1 aaa.cgi: #/usr/sbin/suid-php
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.
MyExec($command)
ktera teprve udela
exec ('sudo "'.AddSlashes($command).'"');
(pripadne zalogovani a dalsi veci) a dusledne volat to vzdy pres tuhle funkci.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.