私は中に固定名前のファイルに出力をリダイレクトすることを読んで/tmp
、攻撃者(あるいは不満)であればあるため、セキュリティ上のリスクとなる可能性がありますファイルがあることの通知/tmp/tmpfileformyscript.tmp
、彼は私への読み取りアクセス権を持っていなくても(私は私のスクリプトを実行したときに作成されますスクリプト)、たとえば、スクリプトを実行するときにファイルln -s ~wildcard/.bashrc /tmp/tmpfileformyscript.tmp
を破棄するシンボリックリンクを作成でき.bashrc
ます。
だから代わりに私はのようなものを使用することができますfilename="tmpfile.tmp.$RANDOM" ; echo outputtext > "$filename"
。
ただし、キャッシュにtmpファイルを使用したい場合があります。その場合、「tmpfile.tmp。*」が何かに一致するかどうかを知りたい場合は/tmp
、新しいファイルを作成するのではなく、そのファイルを使用します。残念ながらtest
、[ -f filename ]
私が知る限り、同等のものはファイルグロビングをサポートしていません。
したがって、私の質問は2つあります。
- 一時ファイルを安全に作成するにはどうすればよいですか?
"predictablename.$RANDOM"
受け入れられるプラクティスですか、それともより良い(より安全で簡単な)方法がありますか? - 確認することで、ファイルに簡単にアクセスしたり、後でその存在を確認したりするにはどうすればよい
predictablename
ですか?
$TMPDIR
とは、~/.cache
私がまさに必要です。さらに考えた後、私はそれが欲しかった唯一の理由/tmp
がパーティショニングであることに気づいたので、キャッシュが/home
パーティションをいっぱいにすることができませんでした。しかし、このユースケースでは実際には完全な非問題であるため、サブディレクトリは~/.cache
私のニーズに完全に適合し、セキュリティの問題を回避します。