Как мне исправить iptables: command not found
проблему, которая произошла с 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:~$
Я много гуглил, и большинство ответов были для CentOS и Fedora, которые датируются 2005 и 2009 годами.
echo $PATH
?PATH
так чтоsudo
вы пропали.Ответы:
iptables
Команда может в значительной степени только с пользой работать в качестве корня, а не в качестве другого пользователя. Так что он не находится в пути поиска команд по умолчанию для пользователей, кроме root.Для запуска
iptables
запустите его с правами root с помощью одной из следующих команд:Исполняемый файл находится в
/sbin
каталоге поиска по умолчанию для команды root.источник
Это потому, что
iptables
нет в вашейPATH
переменной. Я думаю, что это должно работать сsudo
командой. Пытаться:Если это тоже не работает, вы должны проверить, где находится
iptables
бинарный файл, а затем добавить его вPATH
переменную.В большинстве случаев это должно быть в
/sbin/
. Тем не менее, просто проверьте в Debian7. Если это так,/sbin/
то вы можете открыть.bashrc
файл и предоставить его в конце:источник
you should checkout where the iptables binary is
Какую команду я должен набрать, чтобы найти двоичный файл iptables?then you can open .bashrc file and
Где находится.bashrc
файл?dpkg -L iptables
перечислить файлы.vim ~/.bashrc
dpkg -L iptables
покажет, где файлы установлены из пакетаiptables
.Вы можете проверить местоположение
iptables
двоичного файла. Для меня на Ubuntu это в/sbin/iptables
.Так что беги
/sbin/iptables -L
и проверяй.источник