Безопасно ли вызывать переменную среды из сценария crontab?

Я бы беспокоился, что они поддельные и мошеннические; это не ожидаемый режим отказа SSD (ожидаемый режим отказа — он идет только для чтения -и, конечно, также возможен полный отказ ). Я бы с осторожностью доверял им хранить данные даже при включении. Если вы не провели всестороннее тестирование, я предполагаю, что фактическое поведение заключается в том, что у них есть некоторый объем ОЗУ, который возвращает самые -последних X байтов данных. Итак, это кеш, и флэш-память вышла из строя, но контроллер этого не понимает; или это мошенничество, которое кто-то совершил (, полностью исключив вспышку ).

Таким образом, довольно легко сказать Linux использовать их подкачку — просто запустите mkswap /dev/WHATEVERи swapon /dev/WHATER(/dev/disk/by-id/…, было бы проще всего, если у них есть стабильные идентификаторы ), вы можете поместить это в службу systemd или другую загрузку. сценарий... но я бы не рекомендовал его.

3
16.11.2020, 21:25
1 ответ

Размещение переменной в файле crontab и в среде безопасно в том смысле, что другие пользователи не могут получить к ней доступ. Однако существует риск случайного раскрытия, например, если вы публикуете строку crontab при запросе помощи по отладке, или если вы копируете ее и отправляете кому-то в качестве примера того, как автоматизировать запуск скрипта, или если какие-то журналы процессов его среда и журнал доступны для людей, у которых не должно быть доступа к этому паролю, или если вы создаете его резервную копию, и резервные копии доступны для людей, у которых не должно быть доступа к этому паролю. Я рекомендую хранить секреты в отдельном файле или дереве каталогов и читать их при необходимости.

Если изменить нельзяscript.sh:

VAR=$(cat ~/.secret/script/password)

Если вы можете изменить script.sh, заставьте его считывать переменную, когда она ему нужна, а не делать ее доступной для всего скрипта.

Обратите внимание, что хотя переменные среды не раскрываются другим пользователям, аргументы командной строки могут быть видны другим пользователям через ps. Так что не передавайте $VARв качестве аргумента внешней команде. Безопасно использовать $VARв качестве аргумента встроенной оболочки, например, следующее безопасно:

gpg --passphrase-fd=3 3< <(printf %s "$PASSPHRASE")

хотя этот конкретный пример проще выразить как

gpg --passphrase-file=/path/to/passphrase
5
18.03.2021, 22:49

Теги

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