Portál AbcLinuxu, 10. května 2025 02:42
echo exec('uname -a');
tak je vše ok. Ale pokud do execu hodím tohle:
if(exec('echo blabla >> /dev/ttyS0')) {
echo 'melo by to byt ok';
}
else {
echo 'neco je blbe';
}
tak to vypíše "neco je blbe" = exec se neprovede.
Jsem začátečník, asi bude problém s právy, nevíte co s tím? Díky
exec
vrací poslední řádek výstupu - pokud bude výstup přesměrovaný, vrátí prázdný řetězec a tedy false. Je nutné použít další parametry - více v manuálu.
o to mi ale až tak nejde
A o co teda? Co má ten skript vlastně dělat? A může skript vůbec do /dev/...
zapisovat (obvykle běží pod nobody
)?
aby PHP mělo lepší práva
Tipoval bych, že tohle bude spíš záležitost Apache, který to PHP spouští - takže se podívat do httpd.conf
nebo tomu souboru nastavit stejnou skupinu, pod jakou se spouští ten PHP modul (nebo jak to máme nastavené) a dát právo g+w
.
A ještě rýpnutí: proč má PHP skript sahat na přímo na některé zařízení? Přijde mi to totiž (principielně) jako nesmysl a bezpečnostní problém.
jak ty práva mám nastavit?
Vzhledem k tomu, že soubory v /dev/
vznikají až při běhu systému, tak bude potřeba nastavit něco v udev pravidlech - soubory jsou obvykle v /etc/udev/
a protože tohle neumím, tak odkazuji na dokumentaci (stručný návod).
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.