Le sam 30/08/2003 12:18, Franois Boisson a crit :
Bonjour
Bonjour,
$ENV{'PATH'} = '/bin:/usr/bin:/sbin';
puet tre le /sbin dans le PATH (je n'y crois pas, cf plutt plus bas)
je viens de le retirer, il servait a rien de toute les facons, parce que
j'avais
my $iptables = '/sbin/iptables';
ayant vu sur internet que cela pouvais etre source d'insecure dependency
...
system($iptables. -t nat -A PREROUTING -i ppp+ -p tcp -d .$ip.
--dport 4661 -j DNAT --to 192.168.1.1:4661);
Pour excuter une commande systme dans un script suid root, il est
prfrable de sparer le camooande des arguments, en clair essayes system
$iptables, -t nat -A PREROUTING -i ppp+ -p tcp -d .$ip. --dport 4661 -j
DNAT --to 192.168.1.1:4661
Deja un bon point, je viens de comprendre quelque chose :
la virgule sert a sparer la commande des arguments, je ne comprenais
pas pourquoi il y avait une virgule sur les documents sur le net, je
pensais a la concatnation, mais pourquoi pas un . ?
j'ai donc spar la commande de ses arguments a l'aide de la virgule.
Cependant il a l'air de prendre en compte toute la fin de la chaine
comme un seul caractere, ce qui ne plait pas a iptables qui m'injurie
...
Dois-je placer des virgules entre chaque argument ?? c'est un peu lourd
...
D'autant plus que
system($iptables. -P FORWARD DROP);
fonctionne sans pb avec le . par exemple
Je pense donc bien qu'il s'agit de la variable $ip qui met le bordel ...
en plus quand je la remplace par sa valeur a la main, il n'y a pas de pb
(tiens Edonkey!)
gagn ;-)
Ca devrait mieux marcher.
Le mieux est de prciser le chemin complet de la commande dans $iptables.
En esprant que a marche
eh non sniff ...
merci pour ton aide !
--
Grgoire CACHET
http://www.audacy.fr