我目前正在开发一个 yocto 项目,我正在寻找一种解决方案来设置对busybox 命令的权限。我有我的层 meta-exemple1,其中有包含busybox_%.bbappend和files/defconfig_patch.cfg的recipes-core设置配置。
我正在寻找一种方法来为用户的特定命令设置权限..
例子,
假设我有两个用户,user1 和 user2。我想允许 user1 使用命令 cat 而不是 user2
我该怎么做 ?
提前致谢
我目前正在开发一个 yocto 项目,我正在寻找一种解决方案来设置对busybox 命令的权限。我有我的层 meta-exemple1,其中有包含busybox_%.bbappend和files/defconfig_patch.cfg的recipes-core设置配置。
我正在寻找一种方法来为用户的特定命令设置权限..
例子,
假设我有两个用户,user1 和 user2。我想允许 user1 使用命令 cat 而不是 user2
我该怎么做 ?
提前致谢
在 Linux 中,您可以使用 getfacl 和 setfacl 来设置用户对给定二进制文件的权限。更多细节在这里。
在 Yocto 中,您可以使用它,例如:
do_install_append(){
setfacl -m u:user_name:r-- $D${bindir}/cat
}
现在有两个问题:
您需要查看busybox是否将所有二进制文件打包成${D}或打包一个二进制“busybox”,如果是一个二进制文件,您可以尝试附加图像配方的包。
这个想法是找到打包目标二进制文件的配方。
第二个问题是 Yocto 在创建最终 rootfs 时没有保留这些权限,这里提到了这个问题。
因此,您可以尝试建议的解决方案,即在打包阶段之后使用pkg_postinst_${PN}_append()添加权限,或者我建议您可以创建一个在启动时运行的服务并在所需的二进制文件上运行 setfacl 命令。
这是我发现的,希望它可以帮助您找到正确的解决方案。