Qual é a diferença entre um usuário normal e um usuário do sistema?

124

Alguma documentação que eu estou passando possui uma opção booleana sobre se um usuário é ou não um usuário do 'sistema' ou um usuário 'normal' (o padrão é 'normal').

Qual é a diferença entre esses dois modos de envio do usuário? Não preciso aprender o que é um usuário ou por que você precisa dele (mesmo os 'falsos'), mas essa distinção em particular não é intuitiva para mim.

Sean Allred
fonte

Respostas:

85

Essa não é uma diferença técnica, mas uma decisão organizacional. Por exemplo, faz sentido mostrar usuários normais em uma caixa de diálogo de login (para que você possa clicar neles em vez de digitar o nome do usuário), mas não mostrar as contas do sistema (os UIDs sob os quais os daemons e outros processos automáticos são executados) .

Assim, uma borda é definida ou melhor, dois intervalos para os UIDs para os dois grupos. No openSUSE, o arquivo /etc/login.defscontém estas linhas:

# Valores mínimo / máximo para seleção automática de uid em useradd
#
# SYS_UID_MIN a SYS_UID_MAX inclusive é o intervalo para
# UIDs para contas administrativas e de sistema alocadas dinamicamente.
# UID_MIN a UID_MAX inclusive é o intervalo de UIDs dinamicamente
# contas de usuário alocadas.
#
UID_MIN 1000
UID_MAX 60000
# Contas de sistema
SYS_UID_MIN 100
SYS_UID_MAX 499

e

# Valores mínimo / máximo para seleção automática de gid em groupadd
#
# SYS_GID_MIN a SYS_GID_MAX inclusive é o intervalo para
# GIDs para grupos administrativos e de sistema alocados dinamicamente.
# GID_MIN a GID_MAX inclusive é o intervalo de GIDs dinamicamente
# grupos alocados.
#
GID_MIN 1000
GID_MAX 60000
# Contas de sistema
SYS_GID_MIN 100
SYS_GID_MAX 499
Hauke ​​Laging
fonte
3
Vale a pena notar que o Debian e outros terão regras de sistema ocultas para a maioria (como nas regras do PAM que regem as opções de autenticação do sistema) que distinguem com base no fato de os UIDs estarem acima de 1000 ou menos. Escolha seus UIDs com cuidado.
Dave
38

A principal diferença é o objetivo da conta, por isso é principalmente uma distinção útil para administradores e auditores. Existem algumas diferenças técnicas - da adduserdocumentação:

Os usuários do sistema serão criados sem informações antigas /etc/shadowe seus identificadores numéricos serão escolhidos no intervalo SYS_UID_MIN- SYS_UID_MAXdefinido em /etc/login.defsvez de UID_MIN- UID_MAX(e seus equivalentes GID para a criação de grupos).

Até onde eu sei (não sei Puppet), a diferença da perspectiva de Puppet é se ela passa a -ropção para adduser.

Para uma perspectiva mais ampla, consulte É possível "ocultar" uma conta do / etc / passwd?

Gilles
fonte
No CentOS: Embora useradd --system foousernão crie um diretório pessoal para esse usuário, de acordo com a página do manual useradd(8)(que diz: Observe que useradd não criará um diretório pessoal para esse usuário, independentemente da configuração padrão em /etc/login.defs (CREATE_HOME) . você tem que especificar as opções -m se você quiser um diretório base para um sistema de conta a ser criada. ), o diretório home do novo usuário foouseré dado como o inexistente /home/foouserem /etc/passwd.
David Tonhofer
Além disso, o UID é selecionado pela contagem regressiva SYS_UID_MAX, geralmente de 1000, portanto, temos o UID 998, por exemplo, para o foouser.
David Tonhofer