2011-06-07 10 views
12

-e seçeneğine sahip olmayan bir netcat sürümü ile netcat -e benzetimini nasıl yapabilirim?Öykünme netcat -e

Uzaktan bir komut tetiklemem gerekiyor. Ben netcat ile yapabilirsiniz - -e olmadan:

#/bin/bash

8080 -l netcat'in; myCommand.sh

Emir komuta başarı ya da başarısızlık bağlı olarak müşteriye cevap vermek istiyoruz hile, ama yapacağını

(- benzeri arayüz REST bir tür olması).

Bunu nasıl yapabilir?

Teşekkürler!

+2

Bunun için bir adlandırılmış yöneltme kullanmak Could c + ctrl ile müşteri öldürmek ./script.sh? Kayıt için – Lynch

cevap

4

En iyi yol, bunu destekleyen netcat sürümüne geçiş yapmaktır.

nc.traditional server 6767 -e myscript.sh 

nc.openbsd -l 6767 

(not:

sudo apt-get install netcat-traditional # netcat-openbsd 

İhtiyaç duyduğunuz sürümü explicitely belirtme seçeneğine sahip olacaktır: Debian/Ubuntu IIRC üzerinde doğru bir netcat'in geleneksel kullanmalıdır, OpenBSD Netcat'i değil seçenek kullanımında ince farklar). Gördüğünüz gibi (aşağıda) nc.traditional, sadece libc ve linux'un kendisine bağlı olarak bağımsız bir ikili olarak çalıştırılabilir, bu nedenle kurulum izinlerine sahip değilseniz, 'u tek başına ikili'u bir yere bırakabilirsiniz (elbette exec izni ile bir dosya sistemi) ve

/home/user/bin/mynetcat server 6767 -e myscript.sh 

gibi hth


çalıştırmak
$ 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) 
+0

, 'statik olarak bağlantılı' anlamına gelmez. – Random832

+0

Evet biliyorum, bu yüzden bağımlılıkları dile getirdim :) Ne diyecektiniz? 'Kısmen statik olarak bağlantılı', 'Çoğunlukla statik olarak bağlantılı', 'Bağımsız ikili'? Hmm ..., belki de ikincisi çok kötü olmaz! ** Düzenlendi **, thx – sehe

+0

Teşekkürler, ama küçük senaryonumu 'rastgele ikili' ile dağıtma fikrini sevmiyorum. Ayrıca bunu bir dev makine (32 bit) üzerinde test etmem ve bir hazırlama sunucusuna (64 bit) dağıtmam gerekiyor. – user787935

12
mkfifo foo 
nc -lk 2600 0<foo | /bin/bash 1>foo 

Sonra sadece nc se rvername 2600 ve

İlgili konular