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

69

Além do useradd mais difundido, os sistemas baseados em Debian também contêm um comando adduser 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 de SE que detalham as diferenças básicas entre esses comandos, por exemplo:

A maioria das respostas diz basicamente que adduser fornece uma interface melhor para adicionar usuários de forma interativa, mas não dá muitos detalhes sobre o que acontece quando adduser é executado e não em comparação com useradd . Então:

  1. O que adduser faz que useradd não faz?
  2. Quais comandos eu preciso usar para produzir resultados equivalentes?
por Graeme 24.03.2014 / 00:10

3 respostas

75

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

adduser and addgroup add users and groups to the system according to command line options and configuration information in /etc/adduser.conf. They are friendlier front ends to the low level tools like useradd, groupadd and usermod programs, by default choosing Debian policy conformant UID and GID values, creating a home directory with skeletal configuration, running a custom script, and other features.

Então, para useradd :

useradd is a low level utility for adding users. On Debian, administrators should usually use adduser(8) instead.

Uma investigação mais aprofundada de adduser revela 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 expiração de senha.
  • edquota - usado para alterar cotas de uso de disco.

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

adduser username

Este comando simples faz várias coisas:

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

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

useradd -m -U username
passwd username
chfn username

Observe que adduser garante que os UIDs e os GIDs criados estejam de acordo com o repositório Debian política . A criação de usuários normais com useradd parece estar ok, desde que UID_MIN / UID_MAX in /etc/login.defs corresponda à política do Debian. O que é um problema é que o Debian especifica um intervalo específico para UIDs de usuário do sistema que parece ser suportado apenas em /etc/adduser.conf , então adicionar um usuário do sistema com useradd e não especificar um UID / GUID no intervalo correto deixa o potencial para problemas sérios.

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

adduser username newgroup

substitui um comando usermod mais complexo que requer que os grupos dos quais o usuário já é membro (e que você gostaria que o usuário permanecesse como membro) fossem especificados:

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

Uma desvantagem de usar adduser aqui é que você só pode especificar um grupo de cada vez.

    
por 24.03.2014 / 00:10
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 fazer com o comando useradd . useradd apenas adiciona diretórios home para usuários normais e não para usuários do sistema.

    
por 04.11.2015 / 21:19
0

O administrador do sistema pode fazer qualquer coisa com useradd que possa ser feito com o adduser. Foi dito aqui que você não pode criar um diretório / home / user para usuários do sistema com useradd, e você pode absolutamente, 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.

    
por 16.07.2017 / 14:26