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/passwd9056 行の長さです。

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

答え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_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まったく同じエラーで失敗していました。カスタム ID マッピングを構成する必要がないため、およびデータベースをuseradd管理したくなかったので、この機能を無効にしました。これは、およびファイルを削除すると実行できます。subuidsubgid/etc/subuid/etc/subgid

シャドウユーティリティの最新バージョン(4.9以降)とか、ぐらい)、設定SUB_UID_COUNT 0、 SUB_GID_COUNT 0 および/etc/login.defsでも動作します。login.defs(5)詳細については。

関連情報