新しいパッケージで無料で提供されるUID / GID

新しいパッケージで無料で提供されるUID / GID

読んだ後https://unix.stackexchange.com/a/222376/246754rpm は uid/gid が互いに衝突しないようにどのように保証しますか?

私が探しているものは次のとおりです。https://github.com/NixOS/nixpkgs/blob/68196a61c26748d3e53a6803de3d2f8c69f27831/nixos/modules/config/users-groups.nix#L640-L642(比較しよう)

私は仮想マシンを構築し、/etc/passwdを使用して取得したuidを確認する必要がありました。 174がデフォルトではないため、私の要件を満たしていません。同様に、nixは0などのルート用のuidも予約します。https://github.com/NixOS/nixpkgs/commit/dba1d48b7897c49e5df9430c6b60f17e03ec361eVMを構築せずにリストを表示し、cliを使用してクエリできます。また、IDアロケータがあるため管理する必要はありません。

/etc/passwd の再構築時に実行されるスクリプトです。

PS:リンクされた質問はRPMに関するものなので、rpm-specをタグ付けしましたが、問題はapt、yum、pacman、Brewなどの他のツールで発生する可能性が高いです...他のシステムについて知っている場合は、別のAを作成してください。質問とその答え(Q&Aスタイルで維持)またはコメント

ベストアンサー1

通常、私たちはUID / GIDではなく名前でユーザー/グループを参照します。

独自のユーザーを持つパッケージは、またはというuseraddラベルを使用します。これにより、システムユーザーの範囲(通常100〜999)で未使用のUID / GIDを持つ新しいユーザーが作成されます。adduser--system

/var/lib/dpkg/info/openssh-server.postinstたとえば、私はDebianシステムを使用しています(説明したRPM-SPECスクリプトレットと同等のDebianシステム)。

if ! getent passwd sshd >/dev/null; then
    adduser --quiet --system --no-create-home --home /run/sshd --shell /usr/sbin/nologin sshd
fi

OpenSSHはユーザーのUID / GIDをハードコーディングせず、sshdその名前を見つけます。

おすすめ記事