Ho letto che il reindirizzamento dell'output su un file con nome fisso /tmppuò essere un rischio per la sicurezza, perché se un utente malintenzionato (o malcontento) nota che un file /tmp/tmpfileformyscript.tmpviene 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.tmpche mi farà distruggere il mio .bashrcfile 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 /tmpe in tal caso, utilizzare quel file anziché crearne uno nuovo. Purtroppo , per quanto ne so, testl'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?
$TMPDIRed~/.cacheè esattamente ciò di cui avevo bisogno. Dopo qualche altro pensiero mi sono reso conto che l'unica ragione per cui lo volevo/tmpera il partizionamento, quindi la cache non poteva riempire la/homepartizione. Ma per questo caso d'uso è davvero un non-problema completo, quindi una sottodirectory~/.cacheadatta perfettamente alle mie esigenze ed evita il problema di sicurezza.