Bug 53830

Summary: hardware-facing Xorg either escalates or is non-executable
Product: Sisyphus Reporter: Arseny Maslennikov <arseny>
Component: xorg-server-controlAssignee: Arseny Maslennikov <arseny>
Status: ASSIGNED --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P5 CC: ldv, shrek, zerg
Version: unstable   
Hardware: all   
OS: Linux   

Description Arseny Maslennikov 2025-04-12 20:31:11 MSK
# grep fmode /etc/control.d/facilities/xorg-server
  new_fmode public 4711 root root
  new_fmode xgrp 4710 root xgrp
  new_fmode restricted 700 root root
  control_fmode "$BINARY" "$*" || exit 1

Я относительно недавно узнал, что у нас нет механизмов запуска rootless Xorg. Т. е. нужно либо быть рутом (но как сброситься потом?), либо он суидный; варианта `711 root root` нет.

Если не убирать суид, то в пустом $HOME (без skel-контента) кто-то создаёт `.cache/` с правами 700 root, чтобы положить туда `mesa_shader_cache*`. Если убрать, то владелец у `.cache` правильный.

(только адептам церкви anti-sudo не рассказывайте!)
Comment 1 Arseny Maslennikov 2025-04-12 20:32:00 MSK
(In reply to Arseny Maslennikov from comment #0)
> Если не убирать суид, то в пустом $HOME (без skel-контента) кто-то создаёт
> `.cache/` с правами 700 root, чтобы положить туда `mesa_shader_cache*`.
https://gitlab.freedesktop.org/mesa/mesa/-/blob/9d359c6d10adb1cd2978a0e13714a3f98544aae8/src/util/disk_cache_os.c#L897
Comment 2 Arseny Maslennikov 2025-04-12 20:36:35 MSK
В нынешние времена же всё, для чего иксам были нужны привилегии рута, либо управляется seatd/logind, либо вынесено в ядерные модули. По идее, suid bit на Xorg не нужен вообще.

Вариант решения:
https://git.altlinux.org/tasks/381211/

Может быть, имеет смысл не 711 root root, а 710 root xgrp. Или оба. Нужен инпут от специалистов по графонию.