bash: iptables: comando não encontrado

12

Como corrijo o problema de iptables: command not found que aconteceu com o 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:~$

Eu pesquisei extensivamente e a maioria das respostas foram para o CentOS e o Fedora que dataram de 2005 e 2009.

    
por user70167 16.08.2014 / 13:10

3 respostas

12

O comando iptables pode ser executado apenas como root, não como outro usuário. Portanto, não está no caminho de pesquisa de comando padrão para usuários que não sejam root.

Para executar iptables , execute-o como root, com um destes comandos:

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

O executável está localizado em /sbin , que está no caminho de pesquisa do comando padrão para raiz.

    
por 16.08.2014 / 22:36
7

É porque iptables não está listado na sua variável PATH . Eu acho que deveria funcionar com o comando sudo . Experimente:

sudo iptables -L

Se isso também não funcionar, você deve verificar onde o iptables binário está e, em seguida, adicioná-lo à variável PATH .

Na maioria dos casos, deve estar em /sbin/ . Ainda assim, apenas verifique no Debian7. Se estiver em /sbin/ , você poderá abrir o arquivo .bashrc e fornecer isso no final:

PATH=/sbin/:$PATH
    
por 16.08.2014 / 13:22
1

dpkg -L iptables mostrará onde os arquivos estão instalados do pacote iptables .

dpkg -L iptables | grep iptables$

Você pode verificar a localização do arquivo binário iptables . Para mim no Ubuntu está em /sbin/iptables .

Portanto, execute com /sbin/iptables -L e verifique.

    
por 16.08.2014 / 14:59

Tags