Bem, fico feliz que você pergunte, porque é uma pergunta interessante.
De acordo com a Wikipédia:
The Linux Standard Base Core Specification specifies that UID values in the range 0 to 99 should be statically allocated by the system, and shall not be created by applications, while UIDs from 100 to 499 should be reserved for dynamic allocation by system administrators and post install scripts.[4]
On FreeBSD, porters who need a UID for their package can pick a free one from the range 50 to 999 and then register the static allocation.[5][6]
Some POSIX systems allocate UIDs for new users starting from 500 (OS X, Red Hat Enterprise Linux), others start at 1000 (openSUSE, Debian[7]). On many Linux systems, these ranges are specified in /etc/login.defs, for useradd and similar tools.
Central UID allocations in enterprise networks (e.g., via LDAP and NFS servers) may limit themselves to using only UID numbers well above 1000, to avoid potential conflicts with UIDs locally allocated on client computers. NFSv4 can help avoid numeric identifier collisions, by identifying users (and groups) in protocol packets using "user@domain" names rather than integer numbers, at the expense of additional translation steps.
Fonte: link
Então, o que eu ganho com isso é:
- Menos de 50 a 99 == altos riscos de conflitos com aplicativos do sistema
- menos de 499 = risco de conflitos com programas
- Menos de 1000 = pequeno risco de conflitos com programas
- Para sistemas UID de rede, você deseja usar somente números altos
No pior dos casos, ainda de acordo com o meu entendimento, você pode ter um programa ou usuário ou grupo, que pode interagir com arquivos ou processar de outros programas ... Eu acho que não é grande coisa na maioria dos pequenos servidores, mas pode se tornar uma violação de segurança importante em sistemas maiores.