Ho letto che il reindirizzamento dell'output su un file con nome fisso /tmp
può essere un rischio per la sicurezza, perché se un utente malintenzionato (o malcontento) nota che un file /tmp/tmpfileformyscript.tmp
viene creato quando eseguo il mio script (anche se non ha accesso in lettura al mio script), ad esempio può creare un collegamento simbolico ln -s ~wildcard/.bashrc /tmp/tmpfileformyscript.tmp
che mi farà distruggere il mio .bashrc
file quando eseguo il mio script.
Quindi invece posso usare qualcosa del genere filename="tmpfile.tmp.$RANDOM" ; echo outputtext > "$filename"
.
Tuttavia, mi piacerebbe usare un file tmp per la memorizzazione nella cache a volte, nel qual caso vorrei sapere se "tmpfile.tmp. *" Corrisponde a qualsiasi cosa in /tmp
e in tal caso, utilizzare quel file anziché crearne uno nuovo. Purtroppo , per quanto ne so, test
l'equivalente [ -f filename ]
non supporta il globbing dei file.
Quindi la mia domanda è duplice:
- Come posso creare in modo sicuro un tempfile? È
"predictablename.$RANDOM"
una pratica accettabile o esiste un modo migliore (più sicuro, più semplice)? - Come posso accedere facilmente al file e / o stabilirne successivamente l'esistenza controllando
predictablename
?
$TMPDIR
ed~/.cache
è esattamente ciò di cui avevo bisogno. Dopo qualche altro pensiero mi sono reso conto che l'unica ragione per cui lo volevo/tmp
era il partizionamento, quindi la cache non poteva riempire la/home
partizione. Ma per questo caso d'uso è davvero un non-problema completo, quindi una sottodirectory~/.cache
adatta perfettamente alle mie esigenze ed evita il problema di sicurezza.