Технический комитет утвердил изменение поведения Systemd в Debian

Технический комитет, принимающий конечные решения в отношении спорных технических вопросов в проекте Debian, утвердил внесение изменения в пакет с systemd, меняющего поведение при работе с каталогом /var/lock. Системный менеджер systemd начиная с выпуска 258 ограничил возможность записи в каталог /var/lock только для пользователей с правами root, в то время как технический комитет Debian одобрил оставление старого поведения, разрешающего запись в /var/lock любым пользователям.

Правила проекта Debian предписывают сохранение исходного поведения приложений (настроек, выставленных в upstream) при формировании пакетов. Для внесения в пакеты специфичных для Debian изменений в обход правил проекта, требуется получение специального разрешения от технического комитета.

В случае с systemd комитет поддержал предложение не следовать изменению, меняющему права доступа к /var/lock с целью усиления безопасности, так как возможность общедоступной записи в каталог /var/lock упоминается в спецификации FHS (Filesystem Hierarchy Standard) и необходима для продолжения работы некоторых существующих программ. Например, приложения для работы в последовательными портами, такие как uucp, minicom, mgetty+sendfax и hylafax, используют каталог /var/lock для разделения доступа к устройствам /dev/ttyS* через создание файлов-блокировок.

Необходимость ограничения доступа к каталогу /var/lock объясняется разработчиками systemd защитой от DoS-атак. Каталог /var/lock является символической ссылкой на каталог /run/lock. Раздел c каталогом /run обычно монтируется отдельно через tmpfs и наличие возможности бесконтрольной записи в него может использоваться для переполнения раздела и блокирования создания новых файлов в иерархии /run.

Чтобы исключить совершение подобных атак при наличии неограниченного доступа ранее в Debian использовался патч, монтирующий /run/lock в отдельном небольшом tmpfs-разделе. В прошлом году данный патч был заменён на юнит run-lock.mount, а этим летом данный юнит удалён, после чего /run/lock оказался в разделе /run. В комментариях к решению технического комитета бывший мэйнтейнер systemd рекоменовал не забывать об отмеченном изменении и вернуться к отдельному монтированию /run/lock, а в долгосрочной перспективе перевести все приложения, завязанные на /run/lock, на блокировки при помощи механизма flock.

Release. Ссылка here.