Intereting Posts

Где должны быть созданы сгенерированные скрипты в файловой системе?

Я пишу часть программного обеспечения (C ++), которая генерирует скрипты Python. Где эти временные скрипты должны быть помещены в файловую систему?

Я прочитал пару страниц о стандарте иерархии файловой системы, но я не нашел ссылки на сгенерированные скрипты.

/ usr / bin, похоже, не очень хорошая идея, поскольку он может быть доступен только для чтения для определенных пользователей. Моя идея состояла бы в том, чтобы поместить их в / var / run / my_program.

Это правильно / нормально? Или что такое «правильное место»?

Изменить: сценарии используются только во время запуска программ создания. Это означает, что им не нужно переживать перезагрузку.

Временные файлы, чье жизненное время не превышает срок действия программы, которая их создает, и, в частности, не должны пережить перезагрузку, перейдите в /tmp . Вернее, соглашение должно использовать каталог, указанный переменной среды TMPDIR , и вернуться в /tmp если он не установлен.

Вы можете выполнять файлы в /tmp . Хотя системный администратор может монтировать его без прав на выполнение, это будет упрощающей конфигурацией для системы, которая запускает только определенные приложения: ожидается, что предотвращение выполнения в /tmp приведет к поломке некоторых приложений и обычно не улучшит безопасность так или иначе.

Имейте в виду, что этот каталог часто используется пользователями, поэтому вам нужно быть осторожным при создании файлов, чтобы случайно не использовать существующий файл, принадлежащий другому пользователю. Используйте утилиту mktemp или функцию mkstemp или, лучше, создайте приватный временный каталог с mktemp или mkdtemp и работайте в этом каталоге.

/run или /var/run не подходят, поскольку у вас может не быть разрешения на создание там файлов (на самом деле у вас не будет разрешения на создание файлов там, если это не будет предоставлено системным администратором). Они предназначены для использования в системах, а не для приложений.