Entendo* que o usuário administrador principal recebe um ID de usuário 501
e os usuários subsequentes recebem números incrementais ( 502
, 503
,…). Mas por que 501
? O que há de especial 50x
, qual a razão histórica/técnica para essa escolha?
* Comecei a investigar isso quando fiquei curioso para saber por que meu disco rígido externo continha todos os arquivos da lixeira .Trashes/501
. Minha pesquisa me levou à conclusão de 501
que é o ID do usuário do administrador principal em sistemas *nix (estou no macOS), mas nãopor que.
Responder1
Muitos sistemas Unix começam a distribuir UIDs aos usuários em um número específico. O Solaris fornecerá o UID 100 ao primeiro usuário de uso geral, no OpenBSD é 1000 e no macOS parece que é o UID 501 que será o UID para o primeiro usuário interativo criado, que provavelmente também é um usuário administrador do macOS (que não é o mesmo como usuário root).
As contas com números mais baixos são contas de usuário do sistema para daemons, etc. Isso torna mais fácil distinguir contas "humanas" interativas de contas de serviços do sistema. Isso também pode facilitar o gerenciamento de usuários, autenticação, etc. em vários softwares.YP/NIS, um sistema um pouco desatualizado para manter contas de usuários (e outras informações) em um servidor central sem a necessidade de criar usuários locais em várias máquinas clientes, por exemplo, possui uma configuração MINUID
e MAXUID
para o intervalo de contas de usuários que deve manipular.
Em alguns Unices, uma variedade de contas de serviço do sistema pode ser alocada para software de terceiros, como UIDs 50 a 999 no FreeBSD ou 500 a 999 no OpenBSD.
Todas essas faixas são escolhidas pelos fabricantes e mantenedores de cada Unices de acordo com as necessidades esperadas de seu sistema operacional. O padrão POSIX não diz nada sobre essas coisas. O UID (e GID) alocável mais baixo e mais alto geralmente é configurável por um administrador local (consulte o adduser
manual).
A maioria dos Unices reserva o UID 0 para root
o superusuário, e atribui o UID mais alto possível (ou pelo menos algum valor alto) ao usuário nobody
(Solaris usa o UID 60001, o OpenBSD usa 32768, mas os UIDs podem sermuitomaior que isso).
(Veja os comentários sobre o UID 0 ser sempre root
(ou não), o que é uma pequena digressão deste tópico)
Atualização: O projeto OpenBSDrejeitado recentementea ideia de randomizar a alocação de UID/GID.
Responder2
Para distribuições que seguem oLSB, eles alocam UIDs e GIDs de 0 a 99 estaticamente. Os UIDs 100-499 são alocados dinamicamente, mas também são para o sistema e não para contas de login.
Por exemplo, daemons de impressão cups
tendem a receber sua própria conta de usuário. Portanto, se uma vulnerabilidade no daemon for explorada, o daemon não funcionará root
com total poder sobre o sistema. (Nem tem necessariamente o poder de interferir com outros daemons).
Nas distribuições Linux mais recentes, o intervalo do sistema é estendido até 999.
Isso deixaria os UIDs 500 ou mais (ou 1000 ou mais) para contas de login.
O Debian também tem umestáticoalocação paraUIDGID 100, embora eu não consiga imaginar esse desvio causando algum problema específico.
É fácil imaginar outro sistema com um desvio de um por um, que reserva adicionalmente o UID 500. (Presumo que isso ainda seria compatível; não consigo imaginar que todos os Linux tenham violado o LSB por tanto tempo, sem está sendo atualizado).
A primeira conta de login não precisa ser uma conta de administrador nem a conta de administrador principal. Os sistemas não usam necessariamente sudo
(principalmente se forem anteriores :). Você pode dizer que a "conta de administrador principal" é root
nesse caso. Fora isso, *nix e distribuições Linux de uso geral não reconhecem uma "conta de administrador principal" específica.