Que mecanismo permite que a sessão gráfica sem privilégios controle o dispositivo de luz de fundo?

1

Wayland (ou Xorg não privilegiado) é capaz de acessar DRM e dispositivos de entrada por meio de fd-passing de systemd-logind ou equivalente. Eu posso ver esses dispositivos (para o primeiro assento) em loginctl seat-status seat0 .

No entanto, não vejo um dispositivo de luz de fundo ( /sys/class/backlight/*/ ) nesta lista de dispositivos.

Além disso, enquanto o GNOME é capaz de controlar minha luz de fundo, meu usuário não recebeu permissão de luz de fundo através do proprietário / grupo do arquivo sysfs ou da ACL:

$ ls -ld /sys/class/backlight/intel_backlight lrwxrwxrwx. 1 root root 0 May 24 17:12 /sys/class/backlight/intel_backlight -> ../../devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/intel_backlight

$ cd /sys/class/backlight/intel_backlight
$ $ ls -l
total 0
-r--r--r--. 1 root root 4096 May 27 22:09 actual_brightness
-rw-r--r--. 1 root root 4096 May 27 22:17 bl_power
-rw-r--r--. 1 root root 4096 May 27 22:17 brightness
lrwxrwxrwx. 1 root root    0 May 27 22:09 device -> ../../card0-eDP-1
-r--r--r--. 1 root root 4096 May 27 22:17 max_brightness
drwxr-xr-x. 2 root root    0 May 27 22:09 power
lrwxrwxrwx. 1 root root    0 May 24 17:12 subsystem -> ../../../../../../../class/backlight
-r--r--r--. 1 root root 4096 May 27 22:17 type
-rw-r--r--. 1 root root 4096 May 27 22:17 uevent
$ getfacl bl_power brightness
# file: bl_power
# owner: root
# group: root
user::rw-
group::r--
other::r--

# file: brightness
# owner: root
# group: root
user::rw-
group::r--
other::r--

Qual mecanismo são os processos sem privilégios na minha sessão do GNOME usando, para controlar a luz de fundo, apesar de não serem root ?

EDITADO PARA ADICIONAR: o dispositivo /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1 é mostrado em loginctl seat-status , e este é o dispositivo pai do dispositivo de luz de fundo.

Estou usando o gnome-shell 3.28.2-1.fc28 com o Wayland. systemd é a versão 238-8.git0e0aa59.fc28 .

    
por sourcejedi 27.05.2018 / 23:26

1 resposta

2

A luz de fundo é definida por gsd-backlight-helper , um gnome-settings-daemon helper que é executado como root, graças a uma configuração do PolicyKit, permitindo que o usuário ativo faça isso. /usr/share/polkit-1/actions/org.gnome.settings-daemon.plugins.power.policy contém o seguinte:

[...]
<action id="org.gnome.settings-daemon.plugins.power.backlight-helper">
  [...]
  <defaults>
    <allow_any>no</allow_any>
    <allow_inactive>no</allow_inactive>
    <allow_active>yes</allow_active>
  </defaults>
[...]
    
por 27.05.2018 / 23:37