Могу ли я снизить уровень привилегий в хранилище сертификатов mono?

На практике почти гарантировано существование /tmp. Однако, даже если он существует, это не означает, что вы должны помещать туда временные файлы.

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

В сценарии оболочки вы можете использовать "${TMPDIR:-/tmp}" в качестве местоположения временного файла: это расширяется до значения TMPDIR, если оно установлено¹, и /tmp в противном случае. Или вы можете установить TMPDIR условно, если он не установлен, с помощью команды

: "${TMPDIR:=/tmp}"

, а затем создать временные файлы внутри "$TMPDIR".

Обратите внимание, что любое приложение может создавать файлы в папке /tmp или $TMPDIR. Кроме того, этот каталог может быть общим для пользователей, поэтому вам нужно позаботиться о разрешениях при создании файла. Во многих системах (Linux, *BSD) есть команда mktemp , которая безопасно создает файлы в правильном каталоге. Как правило, рекомендуется использовать mktemp для создания временных файлов и каталогов, особенно из сценария оболочки, когда невозможно безопасно создать файл в общем каталоге из-за возможности атаки по символической ссылке ( mkdir подходит, если вы правильно обрабатываете ошибки).

¹ и непустые — если переменная пуста, то она в любом случае не может использоваться как есть, и, как правило, рекомендуется обрабатывать пустые или неустановленные переменные одинаково, если они должны содержать имя файла.

1
07.04.2016, 20:54
0 ответов

Теги

Похожие вопросы