사용자 계정을 생성할 때 하위 UID/GID 할당은 어떤 영향을 받습니까?

사용자 계정을 생성할 때 하위 UID/GID 할당은 어떤 영향을 받습니까?

내가 아는 한, 하위 UID와 GID는 연속 범위를 형성하는 방식으로 계정에 할당됩니다.

기본적으로 범위는 100000에서 시작하고 UID/GID의 이론적 최대값까지 확장될 수 있습니다(비록 쉘에서 이 값을 쿼리하는 방법을 찾지 못했지만 /etc/login.defs도구에서 허용하는 값만 나열됩니다). .

n*100000n이제 범위가 100000의 배수, 즉 양의 정수( n>0) 로 시작하면 훨씬 쉬울 것입니다 100000+n*65536. 이렇게 하면 어떤 파일이 어떤 호스트 사용자에게 속하는지 즉시 확인할 수 있습니다.

shadow-utils사람이 더 읽기 쉬운 할당을 달성하기 위해 어떤 방식으로든 종속 UID/GID 할당에 영향을 미칠 수 있는 방법이 있습니까 ?

/etc/subuid그렇지 않은 경우 단순히 파일을 덮어 쓰고 /etc/subgid요구 사항에 맞는 데이터를 사용하여 원하는 것을 얻을 수 있습니까 ?

답변1

usermod명령을 사용하여 SUBUID 및 SUBGID에 대한 특정 FIRST 및 LAST 값을 설정할 수 있습니다 . 예를 들어:

user=<insertusername>
uid=$(id -u $user)
sudo usermod -v $((uid+200000))-$((uid+200000+65535)) -w $((uid+200000))-$((uid+200000+65535)) $user

그러면 /etc/subuid 및 /etc/subgid에 필요한 값이 포함된 항목이 추가됩니다. 자세한 내용은 을 참조하세요 man usermod.

답변2

예 , , 및 매개변수와 해당 항목을 /etc/login.defs사용하여 구성할 수 있습니다 .SUB_UID_MINSUB_UID_MAXSUB_UID_COUNTSUB_GID_*

이러한 모든 매개 변수는 (5) 매뉴얼 페이지에 설명되어 있지만 login.defs이 문서에 제공된 기본값은 모든 플랫폼에 적용되지 않습니다.

매뉴얼 페이지에 따르면 기본값은 설명하는 것과 유사한 동작을 사용해야 하며 범위는 10000의 배수로 설정되어야 합니다. 그러나 이로 인해 일부 플랫폼(예: Debian 및 그 파생물)에서 65000보다 높은 UID 및 GID에 영향을 미치는 특정 시스템 계정 및 그룹에 문제가 발생할 수 있습니다. 따라서 기본 범위인 65536이 적용되었으며 부작용도 있습니다.

따라서 더 많은 사람이 읽을 수 있는 범위를 얻으려면 파일에서 다음 값을 명시적으로 설정할 수 있습니다 /etc/login.defs.

SUB_UID_MIN   100000
SUB_UID_MAX   600100000
SUB_UID_COUNT 100000
SUB_GID_MIN   100000
SUB_GID_MAX   600100000
SUB_GID_COUNT 100000

그런데 파일은 /etc/subuid실제로 /etc/subgid수동으로 편집할 수 있지만 범위가 겹치지 않는지 확인하고 프로세스, 파일 또는 기타 개체 소유권을 방해하지 않는지 확인하세요. 즉, 실제로 시리즈를 사용하기 전에 그렇게 하는 것이 안전하지만 나중에는 각별히 주의해야 합니다.

관련 정보