# Ошибка Permission denied указывает на то, что процесс OpenDKIM

Ошибка `Permission denied` указывает на то, что процесс OpenDKIM не может прочитать ваш приватный ключ, потому что файл принадлежит не тому пользователю.

На FreeBSD стандартным пользователем для OpenDKIM является `mailnull`, а не `opendkim`.

### 🛠️ Пошаговое решение

Вот три последовательных шага, которые гарантированно исправят проблему. Выполните их от root.

**1️⃣ Правильный владелец файла и каталогов**  
Самый важный шаг — изменить владельца для всего, что касается DKIM, на пользователя и группу `mailnull`.

<div class="md-code-block md-code-block-light" id="bkmrk-bash"><div class="md-code-block-banner-wrap"><div class="md-code-block-banner md-code-block-banner-lite"><div class="_121d384"><div class="d2a24f03"><span class="d813de27">bash</span></div></div></div></div></div>```
chown -R mailnull:mailnull /var/db/dkim
```

**2️⃣ Безопасные права доступа**  
Вы уже делали эту часть ранее, но лучше повторить, чтобы исключить ошибку. Это даст OpenDKIM возможность читать ключ и заходить в каталог.

<div class="md-code-block md-code-block-light" id="bkmrk-bash-1"><div class="md-code-block-banner-wrap"><div class="md-code-block-banner md-code-block-banner-lite"><div class="_121d384"><div class="d2a24f03"><span class="d813de27">bash</span></div></div></div></div></div>```
chmod 0600 /var/db/dkim/ip-mail.ru/myselector.private
chmod 0750 /var/db/dkim
chmod 0750 /var/db/dkim/ip-mail.ru
```

**3️⃣ Перезапуск сервисов**  
Чтобы все изменения вступили в силу.

<div class="md-code-block md-code-block-light" id="bkmrk-bash-2"><div class="md-code-block-banner-wrap"><div class="md-code-block-banner md-code-block-banner-lite"><div class="_121d384"><div class="d2a24f03"><span class="d813de27">bash</span></div></div></div></div></div>```
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` есть следующие строки:

<div class="md-code-block md-code-block-light" id="bkmrk-sh"><div class="md-code-block-banner-wrap"><div class="md-code-block-banner md-code-block-banner-lite"><div class="_121d384"><div class="d2a24f03"><span class="d813de27">sh</span></div></div></div></div></div>```
milteropendkim_uid="mailnull"
milteropendkim_gid="mailnull"
```