GNU katran ile, basitçe
tar -xvf untrusted_file.tar
boş bir dizinde. GNU tar /
, --absolute-names
seçenek ile açıkça aksi belirtilmediği sürece, çıkartırken otomatik olarak lider üye adlarını soyar . GNU tar ayrıca, ../
bir dosyanın kullanımının üst düzey dizinin dışına çıkarılmasına neden olacağını ve bunun yerine üst düzey dizinin içine bu dosyaları koyduğunu algılar ; örneğin, bir bileşen üst düzey dizinin üst kısmındaki yerine üst düzey dizindeki foo/../../bar/qux
gibi ayıklanır. . GNU tar da örneğin toplevel dizini dışında işaret sembolik bağlantıları ilgilenir ve neden olmaz toplevel dizinine dışında ayıklanmasını.bar/qux
bar/qux
foo -> ../..
foo/bar
bar
Bunun sadece GNU katranının (yeterince yeni sürümleri için) (diğer bazı uygulamaların yanı sıra, örneğin * BSD katran ve BusyBox katran) için geçerli olduğunu unutmayın. Diğer bazı uygulamaların böyle bir koruması yoktur.
Sembolik bağlar nedeniyle, kullandığınız korumalar yeterli olmaz: arşiv, ağacın dışındaki bir dizine işaret eden ve o dizindeki dosyaları ayıklayan sembolik bir bağlantı içerebilir. Bu sorunu tamamen üye isimlerine göre çözmenin bir yolu yok, sembolik bağların hedefini incelemelisiniz.
Zaten sembolik bağlar içeren bir dizine çıkıyorsanız, garantinin artık geçerli olmayabileceğini unutmayın.