내가 아는 한, 하위 UID와 GID는 연속 범위를 형성하는 방식으로 계정에 할당됩니다.
기본적으로 범위는 100000에서 시작하고 UID/GID의 이론적 최대값까지 확장될 수 있습니다(비록 쉘에서 이 값을 쿼리하는 방법을 찾지 못했지만 /etc/login.defs
도구에서 허용하는 값만 나열됩니다). .
n*100000
n
이제 범위가 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_MIN
SUB_UID_MAX
SUB_UID_COUNT
SUB_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
수동으로 편집할 수 있지만 범위가 겹치지 않는지 확인하고 프로세스, 파일 또는 기타 개체 소유권을 방해하지 않는지 확인하세요. 즉, 실제로 시리즈를 사용하기 전에 그렇게 하는 것이 안전하지만 나중에는 각별히 주의해야 합니다.