Por que o diretório inicial não é criado quando crio um novo usuário?

15

Criei um novo usuário (testuser) usando o useraddcomando em uma máquina virtual do servidor Ubuntu. Eu gostaria de criar um diretório inicial para o usuário e também fornecer-lhes provisões raiz.

No entanto, ao fazer o login como novo usuário, ele reclama que não há diretório inicial. O que estou fazendo de errado?

Principiante
fonte
Respondi à pergunta principal sobre a criação de um diretório doméstico. Conceder a um novo acesso root do usuário é um problema não relacionado e deve ser solicitado separadamente. Basicamente, você só precisa adicionar o usuário ao sudogrupo.
terdon

Respostas:

22

Finalmente eu terminei

Esta é a resposta

   useradd -m -d /home/testuser/ -s /bin/bash -G sudo testuser
Principiante
fonte
1
o que é o sinalizador -d fazendo, ou a bandeira -G fazendo
Alexander Mills
você verifica usando o comando man. basta executar "man useradd".
Iniciante
1
-mcria o diretório inicial se ele não existir. -dsubstitui o local padrão do diretório inicial. -sdefine o shell de login para o usuário. -Gespera uma lista separada por vírgula de grupos aos quais o usuário deve pertencer.
Alastair Harrison
@Beginner you check using man command.Essa é uma resposta zero útil, você poderia ter explicado APÓS lembrar as pessoas sobre a manfunção.
MS Berends
@AlastairHarrison Elogio a você.
MS Berends
21

O useraddprograma foi descontinuado em favor de adduser. De man useradd:

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

adduseré um front-end mais amigável useradde fará coisas como criar diretórios de usuário por padrão. Ao executá-lo com apenas um nome de usuário como argumento, você será solicitado a fornecer informações adicionais, como a senha:

$ sudo adduser testuser
Adding user `testuser' ...
Adding new group `testuser' (1002) ...
Adding new user `testuser' (1002) with group `testuser' ...
Creating home directory `/home/testuser' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
Changing the user information for testuser
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] 

Em geral, você deve sempre usar em adduservez de, useraddpois isso também configurará os grupos necessários automaticamente. Como explicado em man adduser:

   adduser  and  addgroup  add users and groups to the system according to
   command    line    options    and    configuration    information    in
   /etc/adduser.conf.   They  are  friendlier  front ends to the low level
   tools like useradd, groupadd and usermod programs, by default  choosing
   Debian  policy conformant UID and GID values, creating a home directory
   with skeletal configuration, running a custom script,  and  other  fea‐
   tures. 
terdon
fonte
1
Eu não quero usar o comando adduser.
Iniciante
4
@rajcoumar umm, por quê? Essa é a ferramenta certa para o trabalho. Se você insistir em usar a ferramenta errada, terá que criar manualmente o diretório inicial e os grupos de usuários e copiar os arquivos padrão de /etc/skeletc., etc. É por isso que o Debian Way® Oficial é usado adduser.
terdon
1
#terdon ya corrigir .. mas eu estou escrevendo um script shell usando o comando useradd única
Beginner
@rajcoumar OK, então você precisa criar tudo manualmente ou simplesmente alterar o script para usar o ajustador. Basta criar um arquivo /etc/adduser.conf.
terdon
1
basta olhar para a minha resposta, eu não sei que é um correto, mas ele funciona para mim
Beginner
5
useradd -m LOGIN

cria o diretório inicial do usuário

Nizam Mohamed
fonte