adduser, addgroup“正在使用的组”

adduser, addgroup“正在使用的组”

我正在尝试创建一个系统范围的 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

相关内容