Мой пароль находится в файле конфигурации. Как запретить доступ на чтение другим пользователям в системе?

Я пытаюсь использовать ssmtp в качестве почтового приложения для командной строки, как предложено в в этом ответе .

Один из шагов - поместить пароль моей учетной записи в файл /etc/ssmtp/ssmtp.conf. Поскольку файл имеет разрешение на чтение для всех пользователей, он подрывает секретность моего пароля.

Как это преодолеть? Я попытался удалить разрешение на чтение для группы и других, но затем ssmtp больше не работает.

3
задан 13 April 2017 в 15:24

3 ответа

Попробуйте вместо этого вызвать ssmtp как обычного пользователя и указать расположение файла пользовательской конфигурации.

Со страницы руководства ssmtp(8):

-Cfile Use alternate configuration file.

Поместите файл конфигурации в безопасное место в вашем домашнем каталоге без разрешения на чтение для других. Затем запустите ssmtp так:

user@host:~$ ssmtp -C/path/to/somesecuredir/ssmtp.conf [options]
0
ответ дан 13 April 2017 в 15:24

Ответ содержится в примере файла 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"
0
ответ дан 13 April 2017 в 15:24

Я думаю, что лучший способ - создать технического пользователя для 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
0
ответ дан 13 April 2017 в 15:24

Другие вопросы по тегам:

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