私がするたびに
# 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_MIN
SUB_UID_MAX
SUB_UID_MIN
SUB_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
管理したくないため、カスタムsubuid
IDsubgid
マッピングを構成する必要がないため、この機能を無効にしました。これは/etc/subuid
ファイルを削除することによって行うことができます/etc/subgid
。
最新バージョンのシャドウユーティリティ(4.9以降)または)、設定SUB_UID_COUNT 0
および SUB_GID_COUNT 0
。/etc/login.defs
バラよりlogin.defs(5)
もっと学ぶ。