我想传统的方法是为程序/程序集创建伪用户(如游戏用户),将该用户分配给它应该访问的设备组(例如相机),然后运行程序) SUID 作为该用户。如果您删除了“其他人”(不是所有者或组)的权限,则只有该组的所有者和成员(包括伪用户)可以访问它。
此外,您可以使用程序组来限制允许哪些用户执行该程序。为允许进行视频会议的用户创建一个组(例如会议),并将相关程序(被授予对摄像头和麦克风的特殊访问权限的程序)的执行仅限于该组。
+++
另一种方法是将程序SGID作为属于设备的特殊组运行,并删除“其他”的权限。当然,只有当程序只需要访问一台受限设备时,这才有效。