TL;博士;
weston初始化为weston用户,没有超级用户权限。
但是该应用程序需要一些 su 权限并与 root 用户共享一些文件。
在 weston 用户可以访问 GUI 可执行文件的情况下,实现安全 Wayland 环境的正确方法是什么?
问题描述
后端需要访问 root 用户有权访问或普通用户不应更改的某些功能,例如创建 NETLINK 套接字、信号量、线程处理和共享内存 ( /dev/shm
)。
但是,GUI 应用程序应该访问由 root 用户创建的一些资源,例如共享内存、共享文件、信号量和线程。
解决方案
以 root 身份运行
我们可以以 root 用户身份运行所有内容,但这是不安全的。
只需将/etc/init.d/weston
文件从更改WESTON_USER=weston
为WESTON_USER=root
然而,此邮件讨论说:
Weston 将创建具有权限的套接字,以便只有用户 weston 运行才能访问它。这是经过深思熟虑的,也是身份验证的工作原理。因此,您无法以 root 身份运行 weston,然后以其他普通用户身份连接到它。实际上,你不应该以root身份运行weston(包括所有GL、着色器编译器、协议处理等)。我不熟悉rpi后端的要求,即运行weston需要什么样的访问权限,但是如果有一个图形设备需要root才能打开,我们应该在weston-launch中这样做,类似于我们处理 linux drm 和输入设备限制的方式。
所以我们不应该使用 root 用户,而应该在weston-launch
.韦斯顿发射如何运作?我认为较新的韦斯顿不使用weston-launch
群组许可
应该创建一个组来处理这些共享资源吗?以及其他团体的一些私人资源?如果共享资源只能从后端更改怎么办?
我们可以改变韦斯顿初始化.bb文件包含一个组
能力
为了执行权限检查,传统的 UNIX 实现区分两类进程:特权进程(其有效用户 ID 为 0,称为超级用户或 root)和非特权进程(其有效 UID 不为零)。特权进程绕过所有内核权限检查,而非特权进程则受到基于进程凭据(通常:有效 UID、有效 GID 和补充组列表)的完全权限检查。
应该能力使用?
其他解决方案
还有什么解决办法?在安全环境中实施它的最可行的方法是什么?