ID do usuário menor que 1000 no CentOS 7

4

Agora estou instalando um novo servidor Linux com o CentOS-7. Antes, eu usava o CentOS-6 em todas as máquinas e usava uid = 555 para minha conta. No entanto, no CentOS-7, parece que uid < = 999 são reservados para o sistema (accoding para alguns artigos na rede). Para fins de teste, tentei criar uma conta com uid = 555, de modo que

# useradd -u 555 {meu-login-name}

Em seguida, uma nova conta foi criada, mesmo no CentOS-7, sem aviso, etc. a partir do comando.

Eu entendo que uid < = 999 é "reservado para o sistema", mas praticamente falando, há algum problema sério em continuar usando o uid acima (555)? Ou, considerando a possibilidade futura de um novo serviço usar o 555, devo evitar usá-lo? Eu aprecio qualquer conselho para isso!

EDITAR

O /etc/login.defs na minha nova máquina (Centos-7) mostra

# Min/max values for automatic uid selection in useradd
#
UID_MIN                  1000
UID_MAX                 60000

enquanto isso na minha velha máquina (Centos-6) é

# Min/max values for automatic uid selection in useradd
#
UID_MIN           500
UID_MAX         60000

com UID_MIN diferente. Além disso, / etc / passwd na minha nova máquina parece

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
pegasus:x:66:65:tog-pegasus OpenPegasus WBEM/CIM services:/var/lib/Pegasus:/sbin/nologin
ods:x:999:998:softhsm private keys owner:/var/lib/softhsm:/sbin/nologin
systemd-bus-proxy:x:998:996:systemd Bus Proxy:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:997:995:User for polkitd:/:/sbin/nologin
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
colord:x:996:993:User for colord:/var/lib/colord:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
unbound:x:995:992:Unbound DNS resolver:/etc/unbound:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
libstoragemgmt:x:994:991:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
saslauth:x:993:76:Saslauthd user:/run/saslauthd:/sbin/nologin
dirsrv:x:389:389:389-ds-base:/usr/share/dirsrv:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
amandabackup:x:33:6:Amanda user:/var/lib/amanda:/bin/bash
pcp:x:388:388:Performance Co-Pilot:/var/lib/pcp:/sbin/nologin
geoclue:x:387:386:User for geoclue:/var/lib/geoclue:/sbin/nologin
setroubleshoot:x:386:385::/var/lib/setroubleshoot:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
memcached:x:385:384:Memcached daemon:/run/memcached:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin
qemu:x:107:107:qemu user:/:/sbin/nologin
radvd:x:75:75:radvd user:/:/sbin/nologin
chrony:x:384:383::/var/lib/chrony:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
sssd:x:383:382:User for sssd:/:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
hsqldb:x:96:96::/var/lib/hsqldb:/sbin/nologin
tomcat:x:91:91:Apache Tomcat:/usr/share/tomcat:/sbin/nologin
pkiuser:x:17:17:Certificate System:/usr/share/pki:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:382:379::/run/gnome-initial-setup/:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
oprofile:x:16:16:Special user account to be used by OProfile:/var/lib/oprofile:/sbin/nologin

A partir do uid mostrado acima, parece-me que os novos serviços usam uid de 999 (ods) - > 998 (systemd-bus-proxy) - > 997 (polkitd) - > ... - > 993 (saslauth). Então, se esse esquema for seguido por outros novos serviços também (no futuro), pode haver pouco risco de usar o 555 (para mim). FYI, outros usuários (exceto eu) já têm uid > = 1000, então não há problema para eles. Mas eu tenho usado o 555 para outras máquinas (incluindo o Mac), então ainda estou me perguntando se é melhor usar o uid > = 1000 a partir de agora.

    
por roygvib 08.02.2017 / 13:29

1 resposta

5

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.

    
por 08.02.2017 / 14:15

Tags