Ошибка Permission denied указывает на то, что процесс OpenDKIM
Ошибка Permission denied указывает на то, что процесс OpenDKIM не может прочитать ваш приватный ключ, потому что файл принадлежит не тому пользователю.
На FreeBSD стандартным пользователем для OpenDKIM является mailnull, а не opendkim.
🛠️ Пошаговое решение
Вот три последовательных шага, которые гарантированно исправят проблему. Выполните их от root.
1️⃣ Правильный владелец файла и каталогов
Самый важный шаг — изменить владельца для всего, что касается DKIM, на пользователя и группу mailnull.
chown -R mailnull:mailnull /var/db/dkim
2️⃣ Безопасные права доступа
Вы уже делали эту часть ранее, но лучше повторить, чтобы исключить ошибку. Это даст OpenDKIM возможность читать ключ и заходить в каталог.
chmod 0600 /var/db/dkim/ip-mail.ru/myselector.private chmod 0750 /var/db/dkim chmod 0750 /var/db/dkim/ip-mail.ru
3️⃣ Перезапуск сервисов
Чтобы все изменения вступили в силу.
service milter-opendkim restart service sendmail restart # или service postfix restart, если он у вас
💡 Почему это важно
-
Пользователь по умолчанию: В отличие от многих других систем, где OpenDKIM часто запускается от собственного пользователя
opendkim, в портах FreeBSD по умолчанию используетсяmailnull. -
Безопасность: OpenDKIM намеренно требователен к правам доступа и откажется загружать ключ, если он доступен кому-то ещё, кроме владельца.
После выполнения этих шагов выполните команду tail -f /var/log/maillog и попробуйте отправить тестовое письмо. Ошибка Permission denied должна исчезнуть.
Если проблема сохранится, проверьте еще одну вещь: в некоторых версиях требуется также явно указать пользователя в настройках. Убедитесь, что в файле /etc/rc.conf есть следующие строки:
milteropendkim_uid="mailnull" milteropendkim_gid="mailnull"