sg:未找到 - Alpine Linux

sg:未找到 - Alpine Linux

我正在尝试使用特定用户组执行命令,如链接问题中所述(如何与特定组一起运行流程?)在 Alpine Linux 上,但系统显示“未找到”

~/work $ sg
sh: sg: not found

我检查了shadowapk info -a shadow,看起来sg命令存在:

[...]
cmd:pwunconv
cmd:sg
cmd:su
[...]

shadowAlpine 上的包参考:https://pkgs.alpinelinux.org/contents?branch=edge&name=shadow&arch=x86&repo=community

答案1

我今天使用最新的 alpine (3.16.0) 图像遇到了同样的错误。命令sg又消失了。我不得不切换回 3.15.4:

docker run --rm alpine:3.15.4 sh -c "apk add shadow && sg root -c id"

uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),11(floppy),20(dialout),26(tape),27(video)

有效,而 3.16.0 则无效:

docker run --rm alpine:3.16.0 sh -c "apk add shadow && sg root -c id"

sh: sg: not found

答案2

答案3

Alpine Linux 的设计占用空间非常小(它最初是为嵌入式 Linux 设计的),并且它的所有 shell 命令都是通过“忙碌盒”。还有其他特殊性,例如不常见的库,使其难以用于容器。

这就是说,我想知道为什么你需要在容器中执行此操作,因为你可以在构建容器映像时设置任何文件的 id 和组,并使用任何 id 运行容器。

相关内容