Mengapa opsi '-e' hilang dari netcat-openbsd?

13

Mengapa -eopsi ini hilang dari netcat-openbsdpaket? Ada netcat-traditionalpaket tetapi ada banyak fitur dari paket OpenBSD yang hilang. Saya menjalankan Linux Mint 16.

Adakah yang tahu mengapa ini tidak ada? Ini menghapus fitur netcat yang cukup besar.

p1xel
sumber
kemungkinan duplikat versi netcat
Ciro Santilli 冠状 病毒 审查 六四 事件 法轮功

Jawaban:

17

Karena ada berbagai versi program.

Tidak ada "standar" yang menjelaskan opsi mana yang netcatharus didukung, tidak seperti banyak utilitas standar lainnya yang ditentukan dalam POSIX. Anda memiliki netcatversi dari OpenBSD, FreeBSD, netcat GNU , dan sebagainya.

Untuk varian OpenBSD , halaman manual mencatat bahwa :

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
slhck
sumber