GNU टार के साथ, यह बस है
tar -xvf untrusted_file.tar
एक खाली निर्देशिका में। /
जब तक --absolute-names
विकल्प के साथ स्पष्ट रूप से नहीं बताया जाता है, तब तक GNU टार स्वचालित रूप से एक प्रमुख सदस्य के नाम को हटा देता है । GNU टार भी पता लगाता है कि कब उपयोग के ../
कारण एक फ़ाइल toplevel निर्देशिका के बाहर निकाली जाएगी और उन फ़ाइलों को toplevel निर्देशिका में रखता है, उदाहरण के लिए एक घटक toplevel निर्देशिका के foo/../../bar/qux
रूप bar/qux
में निकाला जाएगा बजाय toplevel निर्देशिका bar/qux
के जनक में । जीएनयू टार भी सांकेतिक लिंक का ख्याल रखता है, जो कि टॉपलेवल डायरेक्टरी के बाहर की ओर इशारा करता है, जैसे foo -> ../..
औरfoo/bar
bar
टॉपलेवल निर्देशिका के बाहर निकालने का कारण नहीं होगा ।
ध्यान दें कि यह केवल (जीएनयू टार के पर्याप्त रूप से हाल के संस्करणों पर लागू होता है) और साथ ही कुछ अन्य कार्यान्वयन, जैसे * बीएसडी टार और बिजीबॉक्स टार)। कुछ अन्य कार्यान्वयनों में ऐसी कोई सुरक्षा नहीं है।
प्रतीकात्मक लिंक के कारण, आपके द्वारा उपयोग किए जाने वाले सुरक्षा पर्याप्त नहीं होंगे: संग्रह में पेड़ के बाहर एक निर्देशिका की ओर इशारा करते हुए एक प्रतीकात्मक लिंक हो सकता है और उस निर्देशिका में फ़ाइलों को निकाल सकता है। सदस्य नामों पर विशुद्ध रूप से आधारित उस समस्या को हल करने का कोई तरीका नहीं है, आपको प्रतीकात्मक लिंक के लक्ष्य की जांच करने की आवश्यकता है।
ध्यान दें कि यदि आप एक ऐसी निर्देशिका में निकाल रहे हैं जिसमें पहले से ही प्रतीकात्मक लिंक हैं, तो गारंटी नहीं रह सकती है।