Estou tentando criar um novo usuário no Ubuntu 14.04 LTS a partir da linha de comando do bash. Eu uso os seguintes comandos:
sudo useradd -c "Samwise the Brave" sam
sudo passwd sam
Enter new UNIX password: hello-1234
Retype new UNIX password: hello-1234
passwd: password updated successfully
Depois de criar este novo usuário, encontrei 3 problemas:
Não consigo fazer login no Ubuntu usando o usuário sam. Sempre que faço login, sou enviado de volta à tela de login.
Quando olho para o
/etc/passwd
arquivo, vejo que não há shells padrão definidos para o usuário sam:cat /etc/passwd | grep sam sam:x:1003:1003:Samwise the Brave:/home/sam:
A pasta inicial de Sam não foi criada, ou seja
/home/sam
, não existe.
Alguma pista sobre o que poderia causar todos esses problemas?
Devo observar aqui que, quando crio um usuário usando o Unity Control Center, esses problemas não ocorrem. Mas eu gostaria de poder usar a linha de comando, pois tenho dezenas de usuários para criar.
fonte
Criar usuário
Criar diretório inicial do usuário
Definir shell de login
Deletar usuário
Excluir diretório inicial do usuário
fonte
Enquanto estiver faltando sinalizadores e as outras respostas não estiverem necessariamente erradas, considere executar o adduser, se você desejar que ele seja mais abrangente no futuro. É uma versão mais bonita do useradd. Ou seja, ele criará um diretório inicial por padrão, diferente do useradd. Observe também que, quando solicita uma tonelada de coisas, armazena essa linha no arquivo / etc / passwd e você não precisa preenchê-lo.
fonte
Obrigado a todos. Com suas respostas, eu pude corrigir o problema usando as seguintes linhas de comando.
A senha está definida com a senha
passwd
já está criptografada (caso contrário, "hello-1234" pareceria não criptografado em / etc / passwd).fonte
Estão faltando sinalizadores no comando useradd. '-m' para criar o diretório do usuário, '-s / bin / bash' para adicionar o shell bash. O padrão é não criar um diretório de usuário e atribuir o shell padrão. Meu sistema fez a mesma coisa quando o testei, então parece que o ubuntu 14.04 usa o espaço em branco como o shell padrão. Você não pode fazer login porque não possui shell.
Criar diretório inicial padrão para o usuário existente no terminal (pergunta 335961, terceira resposta)
Do Ubuntu Manpage para useradd
Como você altera o shell padrão para TODOS OS USUÁRIOS bash? Pergunta 335961
fonte