¿Por qué no se crea el directorio de inicio cuando creo un nuevo usuario?

15

Creé un nuevo usuario (testuser) usando el useraddcomando en una máquina virtual del servidor Ubuntu. Me gustaría crear un directorio de inicio para el usuario y también darles los privilegios de root.

Sin embargo, cuando inicio sesión como nuevo usuario, se queja de que no hay un directorio de inicio. ¿Qué estoy haciendo mal?

Principiante
fuente
Respondí la pregunta principal sobre cómo crear un directorio de inicio. Dar acceso a un nuevo usuario root es un problema no relacionado y debe preguntarse por separado. Básicamente, solo necesita agregar el usuario al sudogrupo.
terdon

Respuestas:

22

Finalmente me terminé

Esta es la respuesta

   useradd -m -d /home/testuser/ -s /bin/bash -G sudo testuser
Principiante
fuente
1
¿Qué está haciendo la bandera -d o la bandera -G?
Alexander Mills
verifica con el comando man. simplemente ejecute "man useradd".
Principiante
1
-mcrea el directorio de inicio si no existe. -danula la ubicación predeterminada del directorio de inicio. -sestablece el shell de inicio de sesión para el usuario. -Gespera una lista de grupos separados por comas a los que debe pertenecer el usuario.
Alastair Harrison
@Beginner you check using man command.Esa es una respuesta útil cero, podría haber explicado DESPUÉS de recordar a las personas sobre la manfunción.
MS Berends
@AlastairHarrison Alabado sea usted.
MS Berends
21

El useraddprograma ha quedado en desuso a favor de adduser. De man useradd:

useradd es una utilidad de bajo nivel para agregar usuarios. En Debian, los
administradores generalmente deberían usar adduser (8) en su lugar
.

adduseres una interfaz más amigable useraddy hará cosas como crear directorios de usuarios de forma predeterminada. Cuando lo ejecute con solo un nombre de usuario como argumento, se le pedirá que proporcione información adicional como la contraseña:

$ 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] 

En general, siempre debe usar en adduserlugar de, useraddya que esto también configurará los grupos necesarios automáticamente. Como se explica en 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
fuente
1
No quiero usar el comando adduser.
Principiante
44
@rajcoumar umm, ¿por qué? Esa es la herramienta adecuada para el trabajo. Si insiste en usar la herramienta incorrecta, tendrá que crear manualmente el directorio de inicio y los grupos de usuarios y copiar los archivos predeterminados de /etc/skeletc., etc. Es por eso que se debe usar Official Debian Way® adduser.
terdon
1
#terdon ya correcto .. pero estoy escribiendo un script de shell usando solo el comando useradd
Principiante
@rajcoumar OK, entonces debes crear todo manualmente o simplemente cambiar el script para usar el ajustador. Simplemente cree un archivo /etc/adduser.conf.
terdon
1
solo mira mi respuesta, no sé si es correcta pero funciona para mí
Principiante
5
useradd -m LOGIN

crea el directorio de inicio del usuario

Nizam Mohamed
fuente