আমি পড়েছি যে কোনও স্থিত নাম ফাইলে আউটপুট পুনঃনির্দেশ /tmp
করা একটি সুরক্ষা ঝুঁকি হতে পারে, কারণ যদি কোনও আক্রমণকারী (বা ত্রুটিযুক্ত) লক্ষ্য করে যে /tmp/tmpfileformyscript.tmp
আমি যখন আমার স্ক্রিপ্টটি চালাচ্ছি তখন একটি ফাইল তৈরি হয়েছিল (এমনকি যদি সে আমার কাছে অ্যাক্সেস না পড়ে তবেও) স্ক্রিপ্ট), তিনি উদাহরণস্বরূপ একটি সিমিলিংক তৈরি করতে পারেন ln -s ~wildcard/.bashrc /tmp/tmpfileformyscript.tmp
যা .bashrc
আমার স্ক্রিপ্টটি চালানোর সময় আমার ফাইলটি নষ্ট করে দেবে ।
সুতরাং পরিবর্তে আমি যেমন কিছু ব্যবহার করতে পারেন filename="tmpfile.tmp.$RANDOM" ; echo outputtext > "$filename"
।
যাইহোক, আমি কখনও কখনও ক্যাশে যাওয়ার জন্য একটি টিএমপি ফাইলটি ব্যবহার করতে চাই, "tmpfile.tmp। *" এর সাথে যে কোনও কিছুর সাথে মেলে কিনা /tmp
তা জানতে চাই এবং একটি নতুন ফাইল তৈরির পরিবর্তে ফাইলটি ব্যবহার করুন। দুর্ভাগ্যক্রমে test
এবং সমতুল্য [ -f filename ]
যতদূর আমি বলতে পারি ফাইল গ্লোব্বিং সমর্থন করে না।
সুতরাং আমার প্রশ্ন দ্বিগুণ:
- আমি কীভাবে নিরাপদে একটি মোচড় তৈরি করতে পারি? কি
"predictablename.$RANDOM"
একটি গ্রহণযোগ্য অনুশীলন বা একটি ভালো (আরো নিরাপদ, সহজ) উপায় নেই? - আমি কীভাবে সহজেই ফাইলটি অ্যাক্সেস করতে পারি এবং / বা পরে পরীক্ষা করে এর অস্তিত্ব প্রতিষ্ঠা করতে পারি
predictablename
?
$TMPDIR
এবং~/.cache
আমার প্রয়োজনটি হ'ল। আরও কিছু চিন্তা করার পরে আমি বুঝতে পারলাম যে আমি এটি চেয়েছিলাম তার একমাত্র কারণ/tmp
ছিল পার্টিশন — সুতরাং ক্যাশে/home
পার্টিশনটি পূরণ করতে পারেনি । তবে এই ব্যবহারের ক্ষেত্রে এটি সত্যিই সম্পূর্ণ অ-ইস্যু, সুতরাং~/.cache
আমার প্রয়োজনের একটি উপ-ডিরেক্টরিটি আমার প্রয়োজনগুলি পুরোপুরি ফিট করে এবং সুরক্ষা সমস্যাটি এড়িয়ে যায়।