iptables
EL7 환경에서 명령을 보면 다음과 같습니다.
bash-4.1# uname -rvos
Linux 3.10.0-327.18.2.el7.x86_64 #1 SMP Thu May 12 11:03:55 UTC 2016 GNU/Linux
심볼릭 링크는 sbin 디렉토리의 iptables-multi-1.4.7 프로세스에서 끝납니다.
bash-4.1# namei /sbin/iptables
f: /sbin/iptables
d /
d sbin
l iptables -> /etc/alternatives/iptables.x86_64
d /
d etc
d alternatives
l iptables.x86_64 -> /sbin/iptables-1.4.7
d /
d sbin
l iptables-1.4.7 -> iptables-multi
l iptables-multi -> /etc/alternatives/sbin-iptables-multi.x86_64
d /
d etc
d alternatives
l sbin-iptables-multi.x86_64 -> /sbin/iptables-multi-1.4.7
d /
d sbin
- iptables-multi-1.4.7
iptables-multi-1.4.7
와 동일한 매개변수를 사용하여 실행 하면 iptables
알 수 없는 하위 명령 오류가 발생합니다.
bash-4.1# iptables --list INPUT 1
KUBE-FIREWALL all -- anywhere anywhere
bash-4.1# iptables-multi-1.4.7 --list INPUT 1
iptables multi-purpose version: unknown subcommand "--list"
동일한 바이너리(서로 심볼릭 링크됨)이더라도 동일한 명령줄 인수는 다른 출력을 생성합니다. 그것을 부르는 올바른 방법은 무엇입니까 iptables-multi-1.4.7
?
답변1
bash-4.1# iptables-multi-1.4.7 main --list INPUT 1
KUBE-FIREWALL all -- anywhere anywhere
넘어진 후소스 코드 iptables-multi를 사용하면 argv의 첫 번째 항목과 두 번째 항목을 구문 분석하려고 시도하는 것을 볼 수 있습니다. 하위 명령으로 iptables에 다시 전달됩니다 main
.