5

Я настраиваю Cygwin, и один из пакетов, которые я использую, - это «электронная почта» для отправки электронной почты из сценария.

Я "улучшил" одну из моих проблем с настройкой электронной почты, скопировав /etc/email/email.conf в каталог в моем домашнем каталоге, вместо того, чтобы редактировать этот файл конфигурации по умолчанию с моими настройками (то есть, в первую очередь, с именем пользователя и паролем .) Тем не менее, он по-прежнему дает мне возможность набирать мой SMTP-пароль открытым текстом в текстовом файле, даже если он ~/my-email.conf .

У команды электронной почты есть параметр -i (или -smtp-pass), к которому я мог бы прикрепить пароль внутри вызывающего скрипта, но на самом деле это не лучше, поскольку он все еще остается открытым текстом в текстовом файле.

Кроме того, команда электронной почты позволяет установить smtp-auth='LOGIN' и запрашивает пароль, но я бы предпочел (требуется?) Беглое выполнение сценария, чтобы я мог автоматизировать его позже.

Как лучше всего решить проблему с необходимостью хранить пароль в открытом виде в файле конфигурации (или скрипте)? Это Cygwin, так что лучше всего просто решить эту проблему со стороны Windows и убедиться, что разрешения безопасности для этого файла ограничены только мной? (т.е. удалить доступ по умолчанию для чтения, предоставленный группе "Пользователи" и т. д.) Или есть более распространенный / подходящий способ решения этой проблемы?

2 ответа2

1

Есть несколько способов справиться с этим.

  1. Вы можете хешировать сохраненный пароль или использовать часть хеша сохраненного пароля в качестве вашего пароля. На самом деле это никак не защитит пароль, так как в самом скрипте, скорее всего, будет встроен метод для хеширования пароля, но он предотвратит присутствие открытого пароля в файле. Вы можете использовать sha1sum, md5sum или даже crypt.

  2. Вы можете использовать скрипт для вызова вашей почтовой программы с паролем, отправленным в качестве аргумента. Сам скрипт может содержать ваш пароль, хотя вы можете хэшировать это значение или даже использовать sqlite3 для его хранения. Если вас не беспокоит необходимость запуска сценария в фоновом режиме без присмотра, тогда вам будет относительно легко запросить у вас пароль, а затем отправить его в команду электронной почты.

  3. Если вы используете smtp-auth = 'LOGIN', вы можете использовать функцию ожидающего ответа на запрос. Expect - это пакет, который вы можете установить на Cygwin. Существует вопрос о стековерсии потока о том, как получить ожидаемый запрос пароля. Это скорее решение, если вам нужен сценарий, чтобы можно было отправлять пароль без присмотра.

Для простого ожидаемого фрагмента для отправки пароля на что-то вроде ssh-add

set timeout -1
spawn ssh-add
match_max 1000000
expect "Enter passphrase for "
send -- "$password\r"
0

В системах Debian я использовал ecryptfs для создания зашифрованной папки в моем домашнем каталоге (это действительно то, что я делаю), а затем символическую ссылку на этот файл.

Вы, вероятно, не можете найти программное обеспечение для этого, но truecrypt позволит вам иметь зашифрованный раздел, который вы можете сделать довольно маленьким, и хранить такие файлы в. Более новые NTFS теперь поддерживают символические ссылки, так что у вас должно получиться хорошо.

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