iptables-multi를 어떻게 실행하나요? EL7의 iptables 심볼릭 링크 대상입니다.

iptables-multi를 어떻게 실행하나요? EL7의 iptables 심볼릭 링크 대상입니다.

iptablesEL7 환경에서 명령을 보면 다음과 같습니다.

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.

관련 정보