sg:見つかりません - Alpine Linux

sg:見つかりません - Alpine Linux

リンクされた質問で述べたように、特定のユーザーグループを使用してコマンドを実行しようとしています(特定のグループでプロセスを実行するには?) Alpine Linuxでは、システムに「見つかりません」と表示されます。

~/work $ sg
sh: sg: not found

shadowパッケージを確認したapk 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

今日の最新のアルパイン(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

sgがシャドウログインパッケージに移行されました

apk add shadow-login

https://pkgs.alpinelinux.org/package/v3.16/community/x86_64/shadow-login

この検索ツールを使用してバイナリを見つけることができます。

https://pkgs.alpinelinux.org/contents?file=sg&path=&name=&branch=v3.16&repo=community&arch=x86_64

答え3

Alpine Linuxはインストールスペースが非常に小さく(オリジナルの組み込みLinux用に設計されています)、すべてのシェルコマンドは次のとおりです。「忙しい箱」。コンテナで使用するのが難しくなる一般的なライブラリなどの他の特性もあります。

つまり、コンテナイメージをビルドするときにすべてのファイルのIDとグループを設定し、すべてのIDでコンテナを実行できるので、コンテナでこれを行う必要があるのはなぜですか?

関連情報