Qual é a diferença entre os comandos addusere useraddno Ubuntu?
Qual é a diferença entre os comandos addusere useraddno Ubuntu?
Respostas:
useraddé um binário nativo compilado com o sistema. Mas,adduseré um script perl que usauseraddbinário no back-end.
adduseré mais amigável e interativo que seu back-enduseradd. Não há diferença nos recursos fornecidos.
-mopção criará o diretório inicial.
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ê.
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).
addusersays:(Enfase adicionada.)
addusereaddgroupadicione 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íveluseradd,groupaddcomousermodprogramas , 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.addusereaddgrouppode ser executado em um dos cinco modos:
useraddsays:
useraddé um utilitário de baixo nível para adicionar usuários. No Debian, os administradores geralmente devem usaradduser(8).
Veja também: Qual é a diferença entre "adduser" e "useradd"? (no superusuário)
adduser ": para scripts automatizados, prefiro useraddporque está sempre lá, não interativo e não específico de distribuição .
adduserno openSUSE, e ele não está lá (13,2).
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).
/usr/sbin/adduser -> useradd
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)
Outro par de diferenças, que levam a cenários específicos nos quais o useradd pode ser preferível.
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
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.
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.
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!
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
# 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#
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.