मैंने पढ़ा है कि एक निश्चित नाम फ़ाइल में आउटपुट पुनर्निर्देशित करना एक /tmp
सुरक्षा जोखिम हो सकता है, क्योंकि यदि कोई हमलावर (या दुर्भावनापूर्ण) नोटिस करता है कि /tmp/tmpfileformyscript.tmp
जब मैं अपनी स्क्रिप्ट चलाता हूं, तो एक फ़ाइल बनाई जाती है (भले ही वह मेरे लिए पढ़ी गई पहुंच न हो) स्क्रिप्ट), वह उदाहरण के लिए एक सिम्लिंक बना ln -s ~wildcard/.bashrc /tmp/tmpfileformyscript.tmp
सकता है जो मुझे .bashrc
अपनी स्क्रिप्ट चलाने पर अपनी फ़ाइल को नष्ट करने का कारण बनेगा ।
इसलिए इसके बजाय मैं कुछ का उपयोग कर सकते हैं filename="tmpfile.tmp.$RANDOM" ; echo outputtext > "$filename"
।
हालाँकि, मैं कभी-कभी कैशिंग के लिए एक tmp फ़ाइल का उपयोग करना चाहूँगा, इस स्थिति में मैं जानना चाहूँगा कि क्या "tmpileile.tmp। *" कुछ भी मेल खाता है /tmp
और यदि ऐसा है, तो नया बनाने के बजाय उस फ़ाइल का उपयोग करें। दुर्भाग्य से test
और बराबर [ -f filename ]
फ़ाइल ग्लोबिंग का समर्थन नहीं करता है जहाँ तक मैं बता सकता हूँ।
इस प्रकार मेरा सवाल दुगना है:
- मैं सुरक्षित रूप से टेम्पोफाइल कैसे बना सकता हूं? क्या
"predictablename.$RANDOM"
एक स्वीकार्य अभ्यास है या बेहतर (अधिक सुरक्षित, आसान) तरीका है? - मैं फ़ाइल को आसानी से कैसे एक्सेस कर सकता / सकती हूं और / या बाद में जाँच कर अपना अस्तित्व स्थापित कर सकती हूँ
predictablename
?
$TMPDIR
और~/.cache
वास्तव में वही है जिसकी मुझे आवश्यकता थी। कुछ और सोचने के बाद मुझे एहसास हुआ कि इसका एकमात्र कारण मैं चाहता था कि इसमें/tmp
विभाजन हो - इसलिए कैश विभाजन को नहीं भर सका/home
। लेकिन इस उपयोग के मामले के लिए जो वास्तव में एक पूर्ण गैर-मुद्दा है, इसलिए~/.cache
मेरी आवश्यकताओं को पूरी तरह से फिट करने का एक उपनिर्देशिका और सुरक्षा मुद्दे से बचा जाता है।