Работа без прав root

Start PowerMTA as non-root user pmta
Мало написать «не root» — надо, чтобы MTA смог читать своё

Начиная с 5.5r3 MTA, веб-монитор и утилиту команд можно запускать от пользователя pmta: sudo -u pmta pmtad, sudo -u pmta pmtahttpd, sudo -u pmta pmta. Сразу после установки pmta — пользователь без входа в систему.

Условия обязательные: run-as-root false и слушатели выше порта 1024; вдобавок может понадобиться поднять пределы nofile и nproc в /etc/security/limits.conf.

Узел, работавший от root, споткнётся о права: владельца /etc/pmta, /var/lib/pmta, /var/log/pmta, /var/spool/pmta и /opt/pmta меняют вручную, например chown -R pmta:pmta.

Главная ловушка — сменить строку, не сменив владельца. Узел, который работал от root, после перехода не сможет писать в собственные каталоги: руководство прямо предупреждает об ошибках прав.
Что делает Хаб. Не выполняет. Строку run-as-root из шаблонов убрали 29.08.2026: одной строкой узел не переводился, а остальные шаги не делались целиком — владельца меняли у двух каталогов из пяти, пределы поднимались командой ulimit в сессии установки, приёмник жалоб и отказов остался на 25-м порту. Замеры 27.08 и 29.08 показали: MTA на узлах работает от root.

Файлы конфигурации Хаб кладёт с владельцем pmta — это права на файлы, а не смена пользователя, от которого работает MTA.

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

Условия и проверка каждого:

Условие Как Проверка
run-as-root false строка и перезапуск ps -o user= -C pmtad
порты выше 1024 smtp-listener ss -ltnp
пределы pmta hard nofile 100000, pmta hard nproc 100000 sudo -u pmta sh -c ‘ulimit -Hn’
владелец каталогов chown -R pmta:pmta пяти каталогов ls -ld /var/spool/pmta
Условия, пределы, каталоги и команды запуска — из руководства (§ 2.2.1, § 3.3.1.9). Таблица — наша.
Пример в конфигурации
# пределы для пользователя pmta, пример руководства
pmta hard nofile 100000
pmta hard nproc 100000
Строки дописывают в /etc/security/limits.conf; действуют они для новых сеансов пользователя.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · linux
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Как проверить на узле
Проверить, от кого работает MTA и кому принадлежат каталоги:
ps -o user=,comm= -C pmtad
ls -ld /etc/pmta /var/lib/pmta /var/log/pmta /var/spool/pmta /opt/pmta
root у процесса — переход не состоялся; root у каталога — после перехода MTA в него не запишет.
В Хабе
Цена ошибки
с перерывом: применение прерывает работу узла
Сценарии
Подготовить узел к отправке · Безопасность узла