無法再使用 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管理subuidsubgid資料庫,因為我不需要配置任何自訂 ID 映射,因此我停用了此功能。這可以透過刪除/etc/subuid和檔案來完成/etc/subgid

對於最新版本的影子實用程式(自 4.9或者),設定SUB_UID_COUNT 0和 SUB_GID_COUNT 0 在你的/etc/login.defs也有效。看login.defs(5)了解詳情。

相關內容