world-readable

<acct-file>

Открывать ли файл учёта на чтение всем пользователям системы
в конфигурации это строкаworld-readable noвнутри блока <acct-file>
Кто на узле сможет прочитать учёт

Строка задаёт права, с которыми MTA создаёт новый файл учёта. Умолчание — no, то есть файл доступен только владельцу.

Повод включить один: учёт читает программа, работающая от другого пользователя. Свой сборщик, выгрузка в хранилище, чужой агент мониторинга.

Но это самый грубый способ решить задачу. Права 644 на весь файл дают чтение каждому пользователю узла, а не тому одному, кому надо. Точнее было бы завести общую группу и права по группе — но такой настройки у директивы нет.

Что именно открывается — стоит помнить. В учёте лежат адреса получателей, темы писем при соответствующем наборе полей, ответы приёмников. Это персональные данные и деловая переписка ваших клиентов.

Уже созданные файлы строка не трогает — только новые.

Главная ловушка — включить ради одной программы и открыть всё всем. На узле, где работает несколько служб или есть учётные записи людей, это раздача адресной базы. И включённая однажды строка обычно остаётся навсегда.
Что делает Хаб. Не пишет — файлы остаются закрытыми.

Основной поток приходит вебхуком, а файлы учёта модуль «Статистика учёта» разбирает на самом узле, заходя по SSH под учётной записью узла, — открывать их всем для этого не нужно. Стороннему сборщику на узле у нас взяться неоткуда.

Если такая задача появится, правильнее дать доступ через группу средствами системы, чем открывать файл всем этой строкой.

Рекомендуемые значения

Ответ почти всегда «нет»:

Значение Когда
no (умолчание) всегда
yes учёт читает программа от другого пользователя, и группу настроить нельзя

Обезличивание не отменяет этого решения, но снижает цену: privacy-policy с хешем оставляет в файле меньше того, что жалко открывать.

Умолчание no и то, что права даются при создании файла, — из руководства (§ 3.3.11.13). Замечание про грубость приёма и совет про группу — наши.
Пример в конфигурации
# чужой сборщик читает файл от другого пользователя
<acct-file /var/log/pmta/acct.csv>
    records d, b
    world-readable yes    privacy-policy hmac-sha256 "KEY-32-BYTES-OR-LONGER"
</acct-file>
Вторая строка здесь не случайна: если файл открывают всем, адреса в нём стоит хотя бы обезличить.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
▲

Типичные ошибки и проблемы

что делают не так и чем это кончается2 ошибки▶

Открывают файл всем ради одной программы

наш опыт

Чем чреватоУчёт с адресами получателей и ответами приёмников становится доступен каждому пользователю узла. Это персональные данные, и раздаются они целиком.
Как заметитьНа узле есть учётные записи людей, а файл учёта читается всеми.
Как правильноДать доступ через группу средствами системы; при невозможности — хотя бы обезличить адреса через privacy-policy.

Ждут, что строка изменит права уже созданных файлов

§ 3.3.11.13

Чем чреватоПрава задаются при создании. Старые файлы остаются с прежними, и программа продолжает получать отказ на них.
Как заметитьНовые файлы читаются, старые нет.
Как правильноПоправить права на старых файлах вручную, один раз.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Справочные данные
Синтаксис
world-readable <boolean>
Значения
yes | no | true | false
Умолчание
no § 3.3.11.13
Применение
reload, перезапуск не нужен
Очередь
уже поставленное в очередь не затронет
Где писать
<acct-file>
Сколько раз
один раз в блоке
Всё здесь — из руководства, с разделом.
Наследование
Наследования нет: строка живёт внутри своего <acct-file> и касается прав только его файлов. Один поток может быть открытым, а соседний — закрытым; это и есть способ отдать наружу только часть.
Как проверить на узле
Проверка прямая — смотрим права на созданные файлы:
ls -l /var/log/pmta/acct*.csv
Права вида -rw-r–r– означают, что строка включена. Уже созданные до правки файлы сохраняют прежние права — их меняют вручную.
В Хабе
Цена ошибки
обратимо: вредит, пока стоит
Сценарии
Собрать телеметрию