我正在尝试创建一个系统范围的 PulseAudio 守护进程(我知道与此相关的安全问题)。但是,当我通过 PulseAudio 守护进程(以 root 身份)播放时,出现访问被拒绝的错误。我认为这可能是因为root用户不在pulse-access组中。
我尝试添加它:
adduser root pulse-access
不幸的是,这又给了我这个错误:
addgroup: group 'root' in use
我正在一个小型 BusyBox 上运行,它没有更高级的 useradd 等命令。
为什么我不能/如何将用户添加到特定组,只能访问这两个命令?
将 PulseAudio 作为系统范围的守护进程运行 https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/SystemWide/
答案1
BusyBox 可以在禁用 FEATURE_ADDUSER_TO_GROUP 的情况下进行编译(buildroot-2017.08 的默认行为)。如果是这种情况,则无法将 addgroup 或 adduser 添加到组中。至少在理论上,因为当我启用该功能时,我仍然遇到相同的错误。
简单的解决方案:直接编辑/etc/group,然后自己添加用户即可。例如:
pulse-access:x:1003:pulse,root
当为 buildroot 构建执行此操作时,您可能需要在 fakeroot 脚本步骤中添加以下内容:
# Add root user to pulse-access group
if [ -e ${TARGET_DIR}/etc/group ]; then
sed -i '/^pulse-access:/s/\(.*\)/\1,root/;s/:,/:/' ${TARGET_DIR}/etc/group
fi