Qual é a diferença entre adduser e useradd?


Respostas:


387

useraddé um binário nativo compilado com o sistema. Mas, adduseré um script perl que usa useraddbinário no back-end.

adduseré mais amigável e interativo que seu back-end useradd. Não há diferença nos recursos fornecidos.

Fonte: Qual é a diferença entre "adduser" e "useradd"?


59
adicionar comando useradd não vai criar '/ home / username' diretório, mas adduser comando
Aprofundar

65
useradd com a -mopção criará o diretório inicial.
richsinn

10
A implementação não é tão interessante, a semântica é. O Like adduser(8)é mais amigável e cria e configura um usuário por padrão da maneira que você espera. E useradd(8)faça apenas o que você pede, então você quer que um diretório pessoal seja criado, você precisa dizer a ele para criar para você.
Anders

23
Eu tenho que pesquisar isso no google toda vez ... Como posso me lembrar de qual é qual?
Quentin Skousen

11
@kkhugs para mim "adduser" parece o mais intuitivo, porque é um comando que soa como inglês, enquanto o outro não, semanticamente. Se você se lembrar dele como o "mais intuitivo" dos dois, também poderá tentar lembrá-lo como o preferido / mais fácil.
Pzkpfw

146

Sempre useadduser (e deluserao excluir usuários) ao criar novos usuários na linha de comando. (Se você estiver escrevendo um script, especialmente se você deseja portabilidade, convém usar os utilitários de baixo nível - e adduser/ ou delusernão estar disponível em todas as distros, por exemplo, no SuSE.)

Os comandos useradd, userdele usermodsão utilitários de baixo nível que estão lá por razões históricas, enquanto o adduser/deluserDo The Right Thing ™. (Lembro-me de qual usar pensando que user*vem depois adduser/deluserno alfabeto e, portanto, é "pior".)

De acordo com as respectivas páginas de manual (no Ubuntu 12.04 Precise Pangolin, ou seja, um sistema derivado do Debian).

Manpage for addusersays:

(Enfase adicionada.)

addusere addgroupadicione 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 ferramentas de baixo nível useradd, groupaddcomo usermodprogramas , por padrão, escolhendo valores UID e GID compatíveis com a política Debian, criando um diretório inicial com configuração esquelética, executando um script personalizado e outros recursos. addusere addgrouppode ser executado em um dos cinco modos:

Manpage for useraddsays:

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

Veja também: Qual é a diferença entre "adduser" e "useradd"? (no superusuário)


6
Eu nunca consigo lembrar qual, então esse é o meu mnemônico estúpido se ajudar alguém :) "user" rima com "perdedor" e "perdedor" vem por último. Assim: adduser, deluser.
Mads Skjern

26
Na verdade, eu discordo de " Sempre usuárioadduser ": para scripts automatizados, prefiro useraddporque está sempre lá, não interativo e não específico de distribuição .
Wernight

2
Tentei adduserno openSUSE, e ele não está lá (13,2).
cst1992

1
@ cst1992 Você está certo, editei a resposta para refletir isso. Curiosamente, quando experimentei locate adduserum sistema SuSE 11 em funcionamento, descobri que havia uma página de addusermanual, mas não binária (e nem uma página de delusermanual nem um comando).
Zrajm

2
No Red Hat/usr/sbin/adduser -> useradd
Levon

17

adduser: adicione usuário com perfil completo e informações (passe, cota, permissão etc.)

useradd: adicionar usuário apenas com seu nome (se você deseja adicionar um usuário temporário com apenas um nome, outras informações não são necessárias)


1
+1 e bem-vindo! Eu votei na pessoa que era incapaz de explicar sua votação anterior. Mantem! Bons programadores sempre chegam ao topo - (e não votam sem uma explicação). :)
Ricalsin

11

Outro par de diferenças, que levam a cenários específicos nos quais o useradd pode ser preferível.

  1. Em algumas distros mais recentes, incluindo o Ubuntu 14.4, o adduser solicitará informações como senha e "gecos" (dados para o comando finger). Isso significa que pode ser menos adequado para chamar de um script (crédito: já mencionado em um comentário do Wernight).

    Os prompts podem ser suprimidos passando argumentos nulos:

    adduser --disabled-password --gecos "" USER
    
  2. useraddpermite que você passe vários grupos adicionais aos quais adicionar um usuário por meio da -Gopção adduserparece exigir que você chame o comando uma vez para cada grupo adicionar.


Não funciona no ubuntu 16.04.
answerSeeker

8

adduseré mais amigável na medida em que define as pastas iniciais da conta e outras configurações (por exemplo, o carregamento automático de estatísticas do sistema e notificações no login), enquanto useraddapenas cria o usuário.


2
Errado. useradd pode criar diretório inicial com -m, definir senha com -p, criar arquivos de esqueleto com -k e adicionar usuário ao (s) grupo (s) com -G.
ychaouche

5

A diferença básica é que "adduser" criará o diretório inicial e adicionará arquivos de esqueleto ao diretório em que "useradd" não criará nenhum diretório inicial e arquivos de esqueleto!

adduser tente:

Adding user `try' ...
Adding new group `try' (1001) ...
Adding new user `try' (1001) with group `try' ...
Creating home directory `/home/try' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for try
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n] y

useradd try1:

# ll /home/
total 20
drwxr-xr-x  5 root    root    4096 Oct 26 15:52 ./
drwxr-xr-x 22 root    root    4096 Oct 26 15:47 ../
drwx------  8 ashishk ashishk 4096 Oct 26 15:50 ashishk/
drwxr-xr-x  3 root    root    4096 Oct 14 13:02 .ecryptfs/
drwxr-xr-x  2 try     try     4096 Oct 26 15:52 try/
root@chef-workstation:/home/ashishk#


0

Também vou apontar que addusernem sempre tem a -Mopção e também não respeita a --systembandeira que diz especificamente :

Observe que o useradd não criará um diretório inicial para esse usuário, independentemente da configuração padrão em /etc/login.defs (CREATE_HOME). Você deve especificar as opções -m se desejar que um diretório inicial para uma conta do sistema seja criado.

Se você estiver tentando criar um usuário do sistema sem um diretório inicial, use useradd --system -M.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.