Por que os UIDs no Solaris são muito altos? Está tudo bem para usar números mais baixos?

3

Vou testar o Solaris 11 e fiquei me perguntando por que os UIDs padrão para novos usuários são tão ridiculamente altos - por exemplo, começando em 65534 e depois caindo para baixo (65533, 65532, ...)? Existe uma boa razão para isso? Eu sei, é claro, que números tão altos são "negativos" e são comumente usados para usuários sem privilégios como o usuário-ninguém ... mas esses são usuários com privilégios normais.

Não seria mais lógico começar com um valor muito menor (por exemplo, 1000) e contar para cima (1001, 1002, ...)? Há algum bom motivo para não fazer isso?

O que mais administradores do Solaris fazem quando atribuem UIDs a seus usuários?

Quaisquer documentos / fontes explicando o motivo pelo esquema de numeração padrão?

    
por Baard Kopperud 19.12.2012 / 04:13

3 respostas

2

Apenas supondo, mas isso parece uma maneira de evitar um conflito entre os IDs de usuário "padrão" de baixo número e os UIDs locais. Os UIDs locais são contados a partir de um valor máximo, e os UIDs do sistema contam a partir do mínimo, com chances quase nulas de colidirem.

(eu usei apenas uma vez um sistema com mais de 64K usuários normais em uma única máquina, e isso ocorreu nos dias anteriores ao LDAP.)

O esquema comum 1-1000 a que você se refere tem alguns problemas:

  1. Você grava todos os valores ainda não utilizados. Você tem que reservar mais do que você acha que vai precisar.

  2. Se você errar, você tem um problema de compatibilidade com a frente. Eu usei * ixes que tinham um limiar de 500 em uma versão, depois 1000 na próxima, sem dúvida porque alguém decidiu que tinha ficado sem UIDs padrão, ou estava em perigo.

por 19.12.2012 / 04:28
3

Parece que algo em seu ambiente criou um uid maior que o esperado, por isso começou a trabalhar a partir daí.

A página de manual do Solaris 11.1 useradd estados:

The UID defaults to the next available (unique) number above the highest number currently assigned. For example, if UIDs 100, 105, and 200 are assigned, the next default UID number will be 201.

    
por 20.12.2012 / 08:16
1

Eu não diria que 65534 é um número ridiculamente alto. Não é muito negativo (o padrão não diz se uid_t é 16 ou 32 bits nem diz se está assinado ou não assinado) e ainda é bem baixo comparado ao intervalo permitido do Solaris. Eu provavelmente apenas objetaria se o useradd tivesse escolhido 2147483647, o maior número de ID de usuário suportado pelo Solaris. Estou perplexo por 65534 ter sido escolhido no seu caso, dado o fato de que já deveria ter sido definido como o usuário anônimo legado do NFS.

De qualquer forma, não reproduzo o que você descreve:

# 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

Isso é consistente com a página de manual do Useradd que diz: < em> O UID é padronizado para o próximo número disponível (exclusivo) acima do maior número atualmente atribuído.

    
por 19.12.2012 / 08:21

Tags