Running Wayland Clients as Non-Root Users on Yocto
9 months ago
- #Embedded Linux
- #Wayland
- #Cybersecurity
- 嵌入式Linux系统通常使用Weston作为Wayland合成器进行窗口管理。
- Qt应用程序通常作为Wayland客户端运行,由Weston将其窗口合成为单一显示界面。
- 以root身份运行Qt应用程序违反了网络安全的最小权限原则,这一问题已被欧盟《网络弹性法案》(EU CRA)特别强调。
- 问题根源在于Wayland套接字文件`/run/wayland-0`的权限设置,该文件仅允许root用户或`weston`用户进行通信。
- 提出两种解决方案:以`weston`用户身份运行应用程序,或调整套接字权限以包含其他用户。
- 详细方案涉及修改Yocto配方,确保Weston和Qt应用程序以非root用户身份运行,并使用静态用户ID保证一致性。
- 解决方案包括修改`weston.service`和`weston.socket`文件,并创建环境配置文件`/etc/default/weston-client`以共享设置。
- 这能确保Wayland客户端与服务器使用相同的套接字文件名,从而提升系统安全性并符合EU CRA要求。