Я пытаюсь использовать ssmtp
в качестве почтового приложения для командной строки, как предложено в в этом ответе .
Один из шагов - поместить пароль моей учетной записи в файл /etc/ssmtp/ssmtp.conf
. Поскольку файл имеет разрешение на чтение для всех пользователей, он подрывает секретность моего пароля.
Как это преодолеть? Я попытался удалить разрешение на чтение для группы и других, но затем ssmtp больше не работает.
Попробуйте вместо этого вызвать ssmtp
как обычного пользователя и указать расположение файла пользовательской конфигурации.
Со страницы руководства ssmtp(8)
:
-Cfile Use alternate configuration file.
Поместите файл конфигурации в безопасное место в вашем домашнем каталоге без разрешения на чтение для других. Затем запустите ssmtp
так:
user@host:~$ ssmtp -C/path/to/somesecuredir/ssmtp.conf [options]
Ответ содержится в примере файла ssmtp.conf - он гласит следующее (взято из http://wiki.debian.org/sSMTP );
#### VERY IMPORTANT !!! If other people have access to this computer
# Your GMAIL Password is left unencrypted in this file
# so make sure you have a strong root password, and make sure
# you change the permissions of this file to be 640:
# chown root:mail /etc/ssmtp/ssmtp.conf
# chmod 640 /etc/ssmtp/ssmtp.conf"
Я думаю, что лучший способ - создать технического пользователя для ssmtp. Для этого есть хороший учебник на https://wiki.freebsd.org/SecureSSMTP
Вот выдержка из него, шаг 4,5,6,8,9 - это то, что вы ищете (пути могут отличаться в зависимости от вашего дистрибутива Linux, сейчас я настроил его для Debian):
[Шаг 4] Создайте пользователя ssmtp:
sudo useradd -g nogroup -M -s /bin/false -c "sSMTP pseudo-user" ssmtp
Это поместит пользователя ssmtp в группу nogroup, запретив вход на основе пароля (-h).
[Шаг 5] Установите правильного владельца и разрешения для каталога конфигурации sSMTP. Мы устанавливаем бит setuid (см. Chmod (1), чтобы убедиться, что новые файлы в каталоге также будут принадлежать пользователю ssmtp:
cd /etc/ssmtp
chown ssmtp:wheel .
chmod 4750 .
[Шаг 6] ). Файл конфигурации sSMTP с правильными разрешениями:
sudo cp ssmtp.conf.sample ssmtp.conf
sudo chown ssmtp:wheel . ssmtp.conf
sudo chmod 640 ssmtp.conf
[Шаг 8] Сделайте исполняемый файл ssmtp владельцем ssmtp и пометьте его SUID:
chown ssmtp:nogroup /usr/sbin/ssmtp
chmod 4555 /usr/sbin/ssmtp
[Шаг 9] Запустить некоторые тесты как непривилегированный пользователь:
$ cat /etc/ssmtp/ssmtp.conf
cat: /etc/ssmtp/ssmtp.conf: Permission denied
$ sendmail john@example.com < /etc/rc.conf