Лучший способ - перейти на версию netcat, которая его поддерживает.В Debian / Ubuntu IIRC правильно вы должны использовать netcat традиционный , а не netcat openbsd :
sudo apt-get install netcat-traditional # netcat-openbsd
У вас будет возможность точно указать, какая версия вам нужна:
nc.traditional server 6767 -e myscript.sh
nc.openbsd -l 6767
( обратите внимание на тонкие различия в использовании опции ).Как вы можете видеть (ниже), nc.traditional может быть запущен как автономный бинарный файл, в зависимости только от самой libc и linux, поэтому, если у вас нет разрешений на установку, вы можете просто удалить автономный бинарный файл где-то (файловая система с разрешением exec
, конечно) и запустите ее как
/home/user/bin/mynetcat server 6767 -e myscript.sh
HTH
$ ldd `which nc.{traditional,openbsd}`
/bin/nc.traditional:
linux-gate.so.1 => (0xb7888000)
libc.so.6 => /lib/libc.so.6 (0xb7709000)
/lib/ld-linux.so.2 (0xb7889000)
/bin/nc.openbsd:
linux-gate.so.1 => (0xb77d0000)
libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0xb76df000)
libc.so.6 => /lib/libc.so.6 (0xb7582000)
libpcre.so.3 => /lib/libpcre.so.3 (0xb754c000)
/lib/ld-linux.so.2 (0xb77d1000)