O que o adduser faz com que o useradd não?

71

Além dos mais difundidos useradd, os sistemas baseados no Debian também contêm um addusercomando adicional que fornece uma interface de nível superior para adicionar usuários e algumas tarefas relacionadas. Existem várias perguntas / respostas em outros sites do SE que detalham as diferenças básicas entre esses comandos, por exemplo:

A maioria das respostas diz essencialmente que adduserfornece uma interface mais agradável para adicionar usuários de maneira interativa, mas não fornece muitos detalhes sobre o que acontece quando a adduserexecução é comparada useradd. Assim:

  1. O adduserque useraddisso não faz?
  2. Quais comandos eu preciso usar para produzir resultados equivalentes?
Graeme
fonte

Respostas:

79

Primeiro, os respectivos trechos da página de manual destacam as diferenças entre os dois comandos e fornecem alguma indicação do que está acontecendo. Para adduser:

adduser e addgroup adicionam usuários e grupos ao sistema de acordo com as opções de linha de comando e informações de configuração em /etc/adduser.conf. Eles são front-ends mais amigáveis ​​para as ferramentas de baixo nível, como programas useradd, groupadd e usermod, por padrão, escolhendo os valores UID e GID em conformidade com a política Debian, criando um diretório inicial com configuração esquelética, executando um script personalizado e outros recursos.

Então para useradd:

useradd é um utilitário de baixo nível para adicionar usuários. No Debian, os administradores geralmente devem usar o adduser (8).

Uma investigação mais aprofundada adduserrevela que é um script perl que fornece uma interface de alto nível e, portanto, oferece algumas das funcionalidades dos seguintes comandos:

  • useradd
  • groupadd
  • passwd - usado para adicionar / alterar senhas de usuários.
  • gpasswd - usado para adicionar / alterar senhas de grupos.
  • usermod - usado para alterar vários parâmetros associados ao usuário.
  • chfn - usado para adicionar / alterar informações adicionais mantidas em um usuário.
  • chage - usado para alterar as informações de validade da senha.
  • edquota - usado para alterar as cotas de uso do disco.

Uma execução básica do addusercomando é a seguinte:

adduser username

Este comando simples fará várias coisas:

  1. Crie o usuário nomeado username.
  2. Crie o diretório inicial do usuário (o padrão é /home/usernamee copie os arquivos /etc/skelpara ele.
  3. Crie um grupo com o mesmo nome que o usuário e coloque o usuário nele.
  4. Solicite uma senha para o usuário.
  5. Solicite informações adicionais sobre o usuário.

O useraddprograma pode realizar a maior parte disso, no entanto, por padrão, não o faz e precisa de opções adicionais. Algumas informações requerem mais comandos:

useradd -m -U username
passwd username
chfn username

Note que addusergarante que os UIDs e GIDs criados estejam em conformidade com a política Debian . A criação de usuários normais com useraddparece estar bem, desde que UID_MIN/ UID_MAXin /etc/login.defscorresponda à política Debian. O que é um problema, porém, é que o Debian especifica um intervalo específico para os UIDs dos usuários do sistema, nos quais apenas parece ser suportado /etc/adduser.conf. A adição ingênua de um usuário do sistema useradde a não especificação de um UID / GUID na faixa correta deixam o potencial para problemas sérios.

Outro uso comum adduseré simplificar o processo de adicionar um usuário a um grupo. Aqui, o seguinte comando:

adduser username newgroup

substitui um usermodcomando mais complexo que requer que os grupos dos quais o usuário já é membro (e que você gostaria que o usuário permaneça membro) sejam especificados:

usermod -G all,other,groups,user,is,in,newgroup

Uma desvantagem de usar adduseraqui é que você pode especificar apenas um grupo por vez.

Graeme
fonte
Isso é legal! Eu nem sabia que isso era uma pergunta. São necessárias senhas com hash como o useradd? Este é um trabalho muito bom, a propósito.
mikeserv
Não sei se concordo totalmente com a declaração "Os administradores devem ...". Pessoalmente, acredito que o administrador provavelmente deveria estar se unindo de adduseracordo com uma política de todo o sistema, mas isso é apenas uma poltrona quarterback na melhor das hipóteses.
mikeserv
@ MikeServ, não, não há senhas hash. Há outro programa que você deve conhecer - chpasswd- isso pode aceitar senhas com hash stdin. Vou esperar até amanhã antes de atualizar essa outra resposta, embora eu pense.
Graeme
bela postagem. Para mim, detalhes demais. O que mais sinto falta é que ele adduserfoi criado originalmente para administradores de servidores que frequentemente precisavam criar / modificar / limitar usuários reais, como em um servidor de email na universidade. Com adduservocê pode automatizar o processo. Isso mudou um pouco ao longo dos anos, hoje em dia useraddpode ser difícil para muitos administradores e para eles adduserse tornou a ferramenta de escolha.
No meu Ubuntu 16.04, -U/ --user-groupparece o padrão.
Franklin Yu
2

O comando adduser por padrão também cria um diretório / home / user para usuários do sistema, o que você não pode executar com o comando useradd . useradd adiciona apenas diretórios pessoais para usuários normais e não para usuários do sistema.

MFPII
fonte
1

O administrador do sistema pode fazer qualquer coisa com useradd que possa ser feita com adduser. Foi declarado aqui que você não pode criar um diretório / home / user para usuários do sistema com useradd, e absolutamente pode, modificando os arquivos contidos em / etc / skel. / etc / skel contém o conjunto de arquivos usados ​​inicialmente para preencher o diretório inicial de um novo usuário.

niten1
fonte