1

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

#!/bin/bash
export SECRET='my_secret'
/usr/bin/some_program
export SECRET=

Итак, я могу подумать о двух проблемах безопасности здесь.

Во-первых, кто-то может найти значение $SECRET , прочитав скрипт. Использование chmod 700 должно позаботиться об этом.

Во-вторых, кто-то может использовать что-то вроде ps ae во время работы some_program . Однако, если скрипт выполняется от имени пользователя root, только root (или sudoers) может видеть его окружение, верно?

Правильно ли я считаю, что значение $SECRET может быть найдено только root или sudoers? Есть ли другие проблемы с безопасностью?

И, чтобы сделать все это немного менее абстрактным, это то, что заставило меня задуматься.

2 ответа2

0

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

Если указана эта опция, то « --use-agent » передается в процесс шифрования GnuPG, и он отключает любое взаимодействие с пользователем по парольной фразе в отношении « --encrypt-key » или « --sign-key ». ,


Обновление: это мои предвзятые мнения.

  • Сценарий не должен вызывать экспорт информации о безопасности в среду
  • Если вы не работаете со специальным приложением (например, duplicity),
    было бы легче избежать проблемы из моего предыдущего пункта, просто перейдя на механизм, основанный на пользовательском агенте (например, у ssh есть один, и я ожидал, что у duplicity будет один - что и сделал)
  • secret информация лучше (в относительном смысле) защищена атрибутами unix-доступа в личных данных приложения (я имею в виду такие вещи, как .ssh/id_dsa)
0

Это скрипт, который будет работать только на вашем компьютере?

В современном Linux по умолчанию переменные среды видны только пользователю root, но это не переносимо. Различные другие ОС либо не могут фильтровать их, либо не фильтруют их по умолчанию.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .