Вы можете избежать "ада цитирования", поместив свои команды sed в файл. Тогда они не подлежат цитированию Bash, и вам нужно только беспокоиться о том, что важно для sed
:
#!/bin/sed -f
# Adjust this to match as much as you need
/headers\['Content-Disposition'\] = /{
# change all double-quotes to single
y/"/'/
# now double-quote the %s argument
s/%s/"&"/g
}
Насколько я понимаю, getmail
может получить пароль из
getmailrc
, getmail
запросит пароль при запуске. (ссылка: http://pyropus.ca/software/getmail/configuration.html )
Мне кажется, что для сохранения пароля в зашифрованном файле GnuPG вам потребуется расшифровать файл (используя кодовую фразу GnuPG), а затем каким-то образом передать его в getmail
, не сохраняя его в текстовом файле между ними (возможно, используя expect
?).
Было бы проще и с меньшей вероятностью случайно оставить ваш почтовый пароль незашифрованным, просто попросить getmail
запросить почтовый пароль (вариант 4 выше).
Я знаю, что это старый вопрос, но вот обновление на случай, если кто-нибудь столкнется с ним. Для справки, вводить пароли не всегда удобно или даже выполнимо — так что это законный вопрос. Пользователи могут иметь много учетных записей и запускать что-то из заданий cron.
Правильным способом безопасного управления паролями был gnome-keyring
. Я говорю «было», потому что все, похоже, обновились до новой библиотеки Python под названием «keyring». python-gnomekeyring
больше не доступен даже в Ubuntu. К сожалению, getmail
не обновил свои зависимости — и просто жалуется, что --store-password-in-gnome-keyring
недопустимый вариант, когда не может его найти. На данный момент не существует безопасного способа управления паролями с помощью getmail
. Конечно, поскольку Python 2 сейчас устарел, а getmail
написан на Python 2, дни его сочтены. Однако жизнеспособной альтернативы, похоже, не существует.
Странно, что чем более совершенными становятся технологии, тем меньше мы можем с ними сделать:)