Поскольку netcat
на моем компьютере не поддерживает -e
, страница netcat
дает мне обходной путь:
$ rm -f /tmp/f; mkfifo /tmp/f
$ cat /tmp/f | /bin/sh -i 2>&1 | nc -l 127.0.0.1 1234 > /tmp/f
Я не понимаю, как это работает.
Я думаю, что когда вы пытаетесь cat /tmp/f
, это блокирует, пока что-то не будет записано в /tmp/f
и если это заблокировано, как запускается остальная часть команды?