Я читав, що перенаправлення виводу у файл з фіксованим іменем /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 ]файл не підтримує глобалізацію файлів, наскільки я можу сказати.
Таким чином, моє питання двояке:
- Як я можу безпечно створити тимплейф? Чи
"predictablename.$RANDOM"прийнятна практика чи існує кращий (більш безпечний, простіший) спосіб? - Як я можу легко отримати доступ до файлу та / або встановити його існування пізніше, перевіривши
predictablename?
$TMPDIRі~/.cacheсаме те, що мені було потрібно. Після деякої подальшої думки я зрозумів, що єдина причина, за якою я цього хотіла, - це/tmpрозділення - тому кеш не міг заповнити/homeрозділ. Але для цього випадку використання є справді повною проблемою, тому підкаталог повністю~/.cacheвідповідає моїм потребам і уникає проблеми безпеки.