더 이상 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관리 하고 싶지 않으며 subuid사용자 subgid정의 ID 매핑을 구성할 필요가 없기 때문에 이 기능을 비활성화했습니다. 이는 /etc/subuid및 파일을 삭제하여 수행할 수 있습니다 /etc/subgid.

최신 버전의 섀도우 유틸리티(4.9 이후)또는), 설정 SUB_UID_COUNT 0및  SUB_GID_COUNT 0 . /etc/login.defs바라보다login.defs(5)더 알아보기.

관련 정보