내가 할 때마다
# 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
사용자 subgid
정의 ID 매핑을 구성할 필요가 없기 때문에 이 기능을 비활성화했습니다. 이는 /etc/subuid
및 파일을 삭제하여 수행할 수 있습니다 /etc/subgid
.
최신 버전의 섀도우 유틸리티(4.9 이후)또는), 설정 SUB_UID_COUNT 0
및 SUB_GID_COUNT 0
. /etc/login.defs
바라보다login.defs(5)
더 알아보기.