SystemdDoctor
UMask= [Service]

UMask= в systemd: права создаваемых службой файлов

Задаёт маску прав для файлов и каталогов, создаваемых процессами службы. Значение по умолчанию — 0022: файлы получают права 0644, каталоги 0755.

Что делает

Маску меняют в двух случаях. Первый — нужно закрыть файлы от чужих глаз: UMask=0077 даст права 0600 и 0700, доступ только владельцу. Второй — нужно дать доступ группе: UMask=0007 даёт 0660 и 0770, что удобно для обмена через общую группу.

Маска действует только на файлы, создаваемые самой программой. Права каталогов службы задаются отдельными параметрами вида StateDirectoryMode=.

Где ставится. В секции [Service].

Значения

ЗначениеЧто происходит
0022по умолчанию: файлы 0644, каталоги 0755.
0077только владельцу: файлы 0600, каталоги 0700.
0007владельцу и группе: файлы 0660, каталоги 0770.

По умолчанию: 0022

Пример

Служба, создающая файлы с данными пользователей.

[Service]
User=app
UMask=0077
StateDirectory=myapp
StateDirectoryMode=0700

Маска и режим каталога заданы согласованно: и каталог, и файлы внутри будут доступны только пользователю службы.

Типичные ошибки

Маска не влияет на права уже существующих файлов: она применяется только при создании.

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

Слишком закрытая маска ломает обмен файлами между службами: тогда нужна общая группа и UMask=0007.

Связанные ошибки

Рядом стоящие параметры

Источники

  • systemd.exec(5) официальная документация
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04) собственная проверка
    сверено 15 сентября 2026