저는 Solaris 11을 사용해 볼 계획인데 왜 신규 사용자의 기본 UID가 65534에서 시작하여 아래로 내려가는 것처럼 터무니없이 높은지 궁금합니다(65533, 65532, ...). 이에 대한 타당한 이유가 있습니까? 물론 나는 그러한 높은 숫자가 "음수"이며 일반적으로 누구와도 같은 권한이 없는 사용자에게 사용된다는 것을 알고 있습니다. 그러나 이들은 일반적인 권한이 있는 사용자입니다.
훨씬 낮은 값(예: 1000)으로 시작하여 위쪽으로 계산하는 것(1001, 1002, ...)이 더 논리적이지 않습니까? 이것을 하지 않을 타당한 이유가 있습니까?
보다 전문적인 Solaris 관리자는 사용자에게 UID를 할당할 때 무엇을 합니까?
기본 번호 매기기 체계의 이유를 설명하는 문서/소스가 있습니까?
답변1
귀하의 환경에서 예상보다 높은 uid를 생성하는 것처럼 들리므로 거기에서 작동합니다.
UID의 기본값은 현재 할당된 가장 높은 숫자보다 높은 다음 사용 가능한(고유) 숫자입니다. 예를 들어 UID 100, 105, 200이 할당되면 다음 기본 UID 번호는 201이 됩니다.
답변2
추측일 뿐이지만 이는 낮은 번호의 "표준" 사용자 ID와 로컬 UID 간의 충돌을 피하는 방법처럼 들립니다. 로컬 UID는 최대값부터 카운트다운되고, 시스템 UID는 최소값부터 카운트다운되며, 충돌 가능성은 거의 0입니다.
(저는 단일 컴퓨터에서 64K 이상의 일반 사용자가 있는 시스템에서 작업한 적이 있는데, 이는 LDAP 이전 시대였습니다.)
언급한 일반적인 1-1000 구성표에는 몇 가지 문제가 있습니다.
사용하지 않은 모든 가치는 소각됩니다. 필요하다고 생각하는 것보다 더 많은 것을 유지해야 합니다.
잘못 추측하면 이후 버전과의 호환성 문제가 발생하게 됩니다. 내가 사용한 *ixes의 임계값은 한 버전에서 500이었고 다음 버전에서는 1000이었습니다. 이는 의심할 여지 없이 누군가가 표준 UID가 부족하거나 위험에 처해 있다고 생각했기 때문입니다.
답변3
나는 65534가 터무니없이 높은 숫자라고 말하지 않을 것입니다. 그다지 부정적이지는 않으며(표준에서는 uid_t가 16비트인지 32비트인지, 부호가 있는지 또는 서명되지 않은지 여부를 말하지 않음) Solaris가 허용하는 것에 비해 여전히 상당히 낮습니다. 아마도 useradd가 2147483647(Solaris에서 지원하는 가장 높은 사용자 ID 번호)을 선택한 경우에만 반대할 것입니다. 귀하의 경우 65534를 선택하는 것이 혼란스럽습니다. 레거시 NFS 익명 사용자로 설정되어야 하기 때문입니다.
어쨌든, 나는 당신이 묘사한 것을 재현하지 않을 것입니다:
# cat /etc/release
Oracle Solaris 11.1 X86
Copyright (c) 1983, 2012, Oracle and/or its affiliates. All rights reserved.
Assembled 19 September 2012
# tail /etc/passwd
webservd:x:80:80:WebServer Reserved UID:/:
postgres:x:90:90:PostgreSQL Reserved UID:/:/usr/bin/pfksh
svctag:x:95:12:Service Tag UID:/:
unknown:x:96:96:Unknown Remote UID:/:
nobody:x:60001:60001:NFS Anonymous Access User:/:
noaccess:x:60002:60002:No Access User:/:
nobody4:x:65534:65534:SunOS 4.x NFS Anonymous Access User:/:
aiuser:x:61:61:AI User:/:
pkg5srv:x:97:97:pkg(5) server UID:/:
jlliagre:x:100:10:jlliagre:/home/jlliagre:/usr/bin/ksh
#
# useradd foo
# tail -2 /etc/passwd
jlliagre:x:100:10:jlliagre:/home/jlliagre:/usr/bin/ksh
foo:x:101:10::/export/home/foo:/usr/bin/bash
이는 다음과 관련이 있습니다.사용자가 추가한 매뉴얼 페이지그것은 다음을 규정합니다:UID의 기본값은 현재 할당된 가장 높은 숫자보다 높은 다음 사용 가능한(고유) 숫자입니다.