bash: iptables: commande introuvable

14

Comment puis-je résoudre le iptables: command not foundproblème qui est arrivé à Debian 7.6?

batman@gotham:~$ uname -a
Linux gotham 3.14-0.bpo.2-amd64 #1 SMP Debian 3.14.13-2~bpo70+1 (2014-07-31) x86_64 GNU/Linux
batman@gotham:~$ iptables -L
bash: iptables: command not found
batman@gotham:~$ sudo apt-get install iptables
[sudo] password for batman: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
iptables is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
batman@gotham:~$

J'ai beaucoup cherché sur Google et la plupart des réponses étaient pour CentOS et Fedora qui remontaient à 2005 et 2009.

user70167
la source
Quelle est la sortie de echo $PATH?
Braiam
1
iptables devrait être dans votre PATHdonc c'est ce qui sudovous manque.
Valentin Bajrami

Réponses:

14

La iptablescommande ne peut être exécutée à peu près qu'en tant que root, et non en tant qu'autre utilisateur. Il n'est donc pas dans le chemin de recherche de commandes par défaut pour les utilisateurs autres que root.

Pour l'exécuter iptables, exécutez-le en tant que root, avec l'une de ces commandes:

su 'iptables --some-option …'
sudo iptables --some-option …

L'exécutable se trouve dans /sbin, qui se trouve dans le chemin de recherche de commandes par défaut pour root.

Gilles 'SO- arrête d'être méchant'
la source
7

C'est parce que iptablesn'est pas répertorié dans votre PATHvariable. Je pense que cela devrait fonctionner avec la sudocommande. Essayer:

sudo iptables -L

Si cela ne fonctionne pas non plus, vous devez vérifier où se trouve le iptablesbinaire, puis l'ajouter à la PATHvariable.

Dans la plupart des cas, elle devrait l'être /sbin/. Vérifiez tout de même dans Debian7. Si c'est le cas, /sbin/vous pouvez ouvrir le .bashrcfichier et le fournir à la fin:

PATH=/sbin/:$PATH
flemingovirus
la source
you should checkout where the iptables binary isQuelle commande dois-je taper pour localiser le binaire iptables?
user70167
then you can open .bashrc file andOù est l'emplacement du .bashrcfichier?
user70167
1
avez-vous vérifié avec sudo? Essayez dpkg -L iptablesde répertorier les fichiers.
flemingovirus
Qu'en est-il du fichier .bashrc? Où est-il situé?
user70167
2
Eh bien, ce sont les bases. Ok, c'est dans votre répertoire personnel. Essayer d'ouvrir à partir de votre terminal. vim ~/.bashrc
flemingovirus
1

dpkg -L iptablesmontrera où les fichiers sont installés à partir du package iptables.

dpkg -L iptables | grep iptables$

Vous pouvez vérifier l'emplacement du iptablesfichier binaire. Pour moi sur Ubuntu c'est dans /sbin/iptables.

Alors courez avec /sbin/iptables -L et vérifiez.

Colonial Dunky
la source