답변:
다양한 버전의 프로그램이 있기 때문입니다.
netcat
POSIX에 지정된 다른 많은 표준 유틸리티와 달리 지원해야하는 옵션을 설명하는 "표준"은 없습니다 . 당신은 netcat
오픈 BSD, FreeBSD의,로부터 버전 GNU netcat을 등등을.
OpenBSD 변형의 경우 맨 페이지는 다음과 같이 지적합니다 .
There is no -c or -e option in this netcat, but you still can execute a
command after connection being established by redirecting file descriptors.
Be cautious here because opening a port and let anyone connected execute
arbitrary command on your site is DANGEROUS. If you really need to do this,
here is an example:
On ‘server’ side:
$ rm -f /tmp/f; mkfifo /tmp/f
$ cat /tmp/f | /bin/sh -i 2>&1 | nc -l 127.0.0.1 1234 > /tmp/f
On ‘client’ side:
$ nc host.example.com 1234
$ (shell prompt from host.example.com)
By doing this, you create a fifo at /tmp/f and make nc listen at port 1234
of address 127.0.0.1 on ‘server’ side, when a ‘client’ establishes a
connection successfully to that port, /bin/sh gets executed on ‘server’
side and the shell prompt is given to ‘client’ side.
When connection is terminated, nc quits as well. Use -k if you want it keep
listening, but if the command quits this option won't restart it or keep nc
running. Also don't forget to remove the file descriptor once you don't
need it anymore:
$ rm -f /tmp/f
netcat에 대한 일부 소스에서 정의를 찾은 마지막 버전도 execute 명령을 활성화합니다. 일반적으로 보안상의 이유로 비활성화됩니다.
그러나 나는 대안으로 대안을 찾았습니다.