
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 depende de um caso de uso?
Responder1
useradd
é um binário nativo compilado com o sistema. Mas adduser
é um script perl que usa useradd
binário no back-end.
adduser
é mais amigável e interativo do que seu back-end useradd
. Não há diferença nos recursos fornecidos.
Responder2
A principal vantagemadicionar usuáriosobreadição de usuárioestá lidando com usuários de nível de sistema. Comadicionar usuárioa conta de usuários no nível do sistema, quando criada, coloca um diretório de usuário em home para o usuário do sistema, ondeadição de usuárionão automaticamente. Se você ler o man, eles são essencialmente os mesmos, exceto para usuários no nível do sistema e os diretórios iniciais associados são automáticos.adicionar usuáriocria um diretório /home/user automaticamente para usuários de nível de sistema onde não há uma provisão emadição de usuário, exceto se especificado por-mopção. As outras leituras que encontrei afirmam genericamente que UID e GUID são atribuídos por padrões Debian conformados aceitos emadicionar usuário.
Responder3
Em algumas instâncias do Redhat que 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' é esta: adicionar um usuário é apenas uma operação no espectro CRUD. Você também precisa das operações 'modificar' e 'excluir' ('ler' é presumivelmente coberto pela visualização de /etc/passwd). E assim, os programas são nomeadosdo utilizador*(useradd, usermod e userdel respectivamente). Suponho que a alternativa*do utilizadora convenção de nomenclatura (adduser, moduser e deluser - não existem) também pode funcionar. Mas seria um pouco mais estranho (por uma razão que não consigo expressar claramente no momento :)
Responder4
Dentro do raspian (eu precisaria verificar outros sistemas operacionais), 'adduser USER' inicia uma caixa de diálogo (TUI) enquanto 'useradd USER' NÃO.
Aparentemente, usando adduser, assim que a caixa de diálogo aparecer, o comando 'useradd' completo já foi executado. Mesmo se você pressionar CTRL-C, seu usuário estará lá.
Como nos novos sistemas criam grupos “pessoais”, para remover o usuário recém-criado seria necessário:
- vi /etc/passwd
- vi /etc/grupo
- rm -rf /home/USUÁRIO
Presumo que, como adduser "usa" useradd, o resto são metadados sobre o usuário. Portanto, tecnicamente, não há alterações em "skel", "máscaras de arquivo" ou algo semelhante, ou seja, os padrões do sistema.
Por outro lado, como useradd não traz nenhuma TUI, pode ser mais útil em scripts.
Para ser sincero, testei apenas em rasbian, porque foi por isso que pisei na questão.
Posso imaginar que outros sistemas operacionais possam implementar uma versão diferente do adduser.