bash: iptables: Befehl nicht gefunden

14

Wie behebe ich das iptables: command not foundProblem, das mit Debian 7.6 passiert ist?

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:~$

Ich habe ausgiebig gegoogelt und die meisten Antworten gingen auf CentOS und Fedora zurück, die auf 2005 und 2009 zurückgingen.

user70167
quelle
Was ist die Ausgabe von echo $PATH?
Braiam
1
iptables sollte in Ihrem sein, PATHalso ist es das, was sudoSie vermissen.
Valentin Bajrami

Antworten:

13

Der iptablesBefehl kann praktisch nur als root ausgeführt werden, nicht als ein anderer Benutzer. Es ist also nicht der Standardbefehlssuchpfad für andere Benutzer als root.

Um es auszuführen iptables, führen Sie es als root mit einem der folgenden Befehle aus:

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

Die ausführbare Datei befindet sich in /sbin. Dies ist der Standardbefehlssuchpfad für root.

Gilles 'SO - hör auf böse zu sein'
quelle
7

Es liegt daran, dass iptableses nicht in Ihrer PATHVariablen aufgeführt ist. Ich denke es sollte mit dem klappensudo Befehl . Versuchen:

sudo iptables -L

Wenn das auch nicht funktioniert, sollten Sie überprüfen, wo die iptables Binärdatei befindet, und sie dann der PATHVariablen hinzufügen .

In den meisten Fällen sollte es in sein /sbin/. Überprüfen Sie dies dennoch einfach in Debian7. Wenn dies der Fall ist /sbin/, können Sie die .bashrcDatei öffnen und am Ende Folgendes bereitstellen:

PATH=/sbin/:$PATH
Flemingovirus
quelle
you should checkout where the iptables binary isWelchen Befehl soll ich eingeben, um die Iptables-Binärdatei zu finden?
user70167
then you can open .bashrc file andWo ist der Speicherort der .bashrcDatei?
user70167
1
Hast du dich bei sudo erkundigt? Versuchen Sie dpkg -L iptables, die Dateien aufzulisten.
Flemingovirus
Was ist mit .bashrc-Datei? Wo liegt es?
user70167
2
Nun, das sind die Grundlagen. Ok, es ist in Ihrem Home-Verzeichnis. Versuchen, von Ihrem Terminal aus zu öffnen. vim ~/.bashrc
Flemingovirus
1

dpkg -L iptableszeigt an, wo die Dateien aus dem Paket installiert sind iptables.

dpkg -L iptables | grep iptables$

Sie können den Speicherort der iptablesBinärdatei überprüfen . Für mich auf Ubuntu ist es in /sbin/iptables.

Also lauf mit /sbin/iptables -L und überprüfe.

Colonial Dunky
quelle