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

61

Eu me pergunto: Por que existem esses dois comandos no Debian Linux, com nomes e funcionalidades muito semelhantes? Isso sempre foi confuso para mim.

  • Algum deles é superior a outro?
  • Por que eles não são mesclados em um?
  • Existe alguma diferença significativa entre eles?
  • Qual devo usar? Ou isso depende de um caso de uso?
Petr Pudlák
fonte
11
Observe que useraddestá disponível em todas as plataformas do tipo Unix; adduseré apenas para o Debian e seus derivados.
Franklin Yu

Respostas:

68

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.

Apple II
fonte
11
adduser não está disponível em todas as distros (por exemplo, com base em suse), e em outras, é apenas um link simbólico para o useradd (baseado em redhat).
ychaouche 21/02
12

A principal vantagem do adduser sobre o useradd é lidar com usuários no nível do sistema. Com adduser, a conta de usuários no nível do sistema, quando criada, coloca um diretório de usuários em casa para o usuário do sistema, onde useradd não faz automaticamente. Se você ler o manual, eles são essencialmente os mesmos, exceto para os usuários no nível do sistema e os diretórios pessoais associados são automáticos. adduser cria um diretório / home / user automaticamente para usuários no nível do sistema em que não há uma provisão no useradd , exceto se especificado pela opção -m . As outras leituras que eu encontrei afirmam genericamente que UID e GUID são atribuídos pelos padrões Debian conformes aceitos no adduser.

user517969
fonte
11
adduser tem uma opção --no-create-home.
precisa saber é o seguinte
1

Em algumas instâncias do Redhat que eu verifiquei (4.9 de 2011 e 6.9 de 2017), adduser é simplesmente um alias para useradd, não um script Perl. Aqui está no Redhat 6.9:

$ ls -la /usr/sbin/useradd /usr/sbin/adduser
lrwxrwxrwx. 1 root root      7 Nov  2  2016 /usr/sbin/adduser -> useradd
-rwxr-x---. 1 root root 111320 Feb  9  2016 /usr/sbin/useradd

A maneira como lembro que useradd é o programa 'correto' é o seguinte: adicionar um usuário é apenas uma operação no espectro CRUD. Você também precisa das operações 'modify' e 'delete' ('read' é presumivelmente coberto pela visualização / etc / passwd). E assim, os programas são nomeados usuário * (useradd, usermod e userdel respectivamente). Suponho que a alternativa * convenção de nomenclatura do usuário (adduser, moduser e deluser - estes não existem) também possa funcionar. Mas seria um pouco mais estranho (por uma razão que não posso expressar claramente no momento :)

Happyblue
fonte
não consegue encontrar moduserno Debian, mas deluserestá definitivamente lá.
precisa saber é o seguinte
0

No raspian (eu precisaria procurar outros sistemas operacionais), 'adduser USER' inicia uma caixa de diálogo (TUI) enquanto 'useradd USER' NÃO.

Aparentemente, usando adduser, uma vez que a caixa de diálogo aparece, o comando 'useradd' completo já está executado. Mesmo se você CTRL-C, seu usuário está lá.

Como nos novos sistemas, eles criam grupos "pessoais", para remover o usuário recém-criado, você precisa:

  • vi / etc / passwd
  • vi / etc / group
  • rm -rf / home / USUÁRIO

Presumo que, como o adduser "usa" useradd, o restante são metadados sobre o usuário. Portanto, tecnicamente, não há alterações em "skel", "máscaras de arquivo" ou similares, ou seja, o padrão do seu sistema.

Por outro lado, como o useradd não abre nenhuma TUI, pode ser mais útil em scripts.

Para ser sincero, testei apenas em rasbian, porque foi por isso que pisei na questão.

Eu posso imaginar que outros sistemas operacionais possam implementar uma versão diferente do adduser.

mariotti
fonte