useraddを使用してユーザーを追加することはできなくなりました。

useraddを使用してユーザーを追加することはできなくなりました。

私がするたびに

# useradd -N --gid 1003 -s /bin/ksh --uid <some UID starting with 10027> --home /home/<someuser> <someuser>

useradd はユーザーの追加を拒否し、以下を印刷します。

useradd: Can't get unique secondary UID range
useradd: can't find subordinate user range

簡単に言えば、/etc/passwd長さは9056行です。

何が問題なのでしょうか?

答え1

~によるとユーザーが追加されました(8)、各ユーザーに予約されているSUB_UID_COUNT個の補助uid範囲を作成します。

SUB_UID_MIN(番号)、  SUB_UID_MAX(番号)、  SUB_UID_COUNT(番号)

    存在する場合、/etc/subuidコマンドuseraddと  newusers (ユーザーにすでにサブユーザーIDがある場合を除く)は、各新しいユーザーにスコープSUB_UID_COUNTで未使用のユーザーIDを割り当てます。SUB_UID_MINSUB_UID_MAX

    SUB_UID_MINSUB_UID_MAX、のデフォルト値はSUB_UID_COUNTそれぞれ100000、600100000、10000です。

デフォルトの制限に達して失敗したようですuseradd

答え2

useradd許可されたUID範囲が使い果たされ、新しいユーザーに子UID範囲を割り当てることができないと文句を言います。指摘したように、システムには多くのユーザーがいて、設定されたデフォルトではlogin.defsこれを処理できません。

依存UID / GIDファイルは、ユーザーの名前空間のUID / GIDマッピングを設定するために使用されます(参照:subuid(5)subgid(5)newuidmap(1)と newgidmap(1) )。

私の場合、システムには10000を超えるUIDがありましたが、  useradd同じエラーで失敗しました。データベースをuseradd管理したくないため、カスタムsubuidIDsubgidマッピングを構成する必要がないため、この機能を無効にしました。これは/etc/subuidファイルを削除することによって行うことができます/etc/subgid

最新バージョンのシャドウユーティリティ(4.9以降)または)、設定SUB_UID_COUNT 0および  SUB_GID_COUNT 0/etc/login.defsバラよりlogin.defs(5)もっと学ぶ。

関連情報