Portál AbcLinuxu, 21. července 2025 17:36
man sudo
Nastav pro uživatele, pod kterým běží apache, aby mohl spouštět nez hesla skript, nebo rovnou iptables. Zapis aktualniho nastaveni do db nebo souboru by taky nebylo na skodu pro obnoveni stavu po restartu.
Bezpečnostní trhlina to byt nemusi, ale musíš důkladně kontrolovat vstupy od uživatele. Asi nejbezpečnejší by bylo:
php >> sudo >> skript >> iptables
A kontrola by byla v php a ve skriptu.
# /etc/sudoers # # This file MUST be edited with the 'visudo' command as root. # # See the man page for details on how to write a sudoers file. # # Host alias specification # User alias specification # Cmnd alias specification # User privilege specification root ALL=(ALL) ALL server ALL=(ALL) NOPASSWD: ALLOpravdu to funguje, ale asi by bylo lepší omezit práva Apache(mimochodem to pod kterým uživatelem poběží jsem nastavil v httpd.conf, klíčovými slovy User server, a Group users, ale User root nastavit nejde) pouze na soubor /etc/network/webconfig, ve kterém bude obslužný bash. skript, ale to zatím bohužel neumím.
$data="neco"; $cmd = "sudo /etc/network/webconfig $data"; system($cmd,$return_value); echo $return_value; ($return_value == 0) or die("returned an error: $cmd");data je proměná kterou chci předat do skriptu v bashi:
#! /bin/bash echo "$data"Ale nic se mi nevrací, respektive se mi vraci hodnota 0 protože operace proběhla úspěšně.
$cmd = '/bin/ls'; $vysl = system($cdm, $ret); print $vysl;
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.