Crear directorio de inicio predeterminado para el usuario existente en la terminal

117

¿Cómo hago esto? Creé un usuario sin un directorio de inicio y ahora quiero crear uno. No solo una carpeta llamada new_user, quiero el directorio principal predeterminado con todas sus carpetas y archivos ocultos, etc.

    
pregunta Jo Rijo 22.08.2013 - 20:54

5 respuestas

177

Utilice lo siguiente (como root, o con sudo si no es root):

mkhomedir_helper username

Para que esto funcione, la carpeta /home/username no debe existir.

Para las carpetas relacionadas con X (Escritorio, Descargas, etc.), deberá iniciar sesión en un entorno de gráficos; se generarán automáticamente la primera vez que inicie sesión.

    
respondido por el kavadias 05.11.2014 - 20:48
31

Los subdirectorios (documentos, descargas, etc.) se crean automáticamente cuando el usuario inicia sesión por primera vez a través de GNOME, siempre que el directorio inicial se haya creado con los permisos correctos. Aquí hay una demostración:

alaa@aa-lu:~$ sudo useradd testinguser
alaa@aa-lu:~$ sudo passwd testinguser
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
alaa@aa-lu:~$ sudo ls -l /home
total 20
drwxr-xr-x 55 alaa alaa  4096 Aug 22 22:00 alaa
drwx------  2 root root 16384 Jun  5 09:46 lost+found
alaa@aa-lu:~$ sudo mkdir /home/testinguser
alaa@aa-lu:~$ sudo chown testinguser:testinguser /home/testinguser
alaa@aa-lu:~$ ls -l /home
total 24
drwxr-xr-x 55 alaa        alaa         4096 Aug 22 22:00 alaa
drwx------  2 root        root        16384 Jun  5 09:46 lost+found
drwxr-xr-x  2 testinguser testinguser  4096 Aug 23 10:03 testinguser
alaa@aa-lu:~$ ls -l /home/testinguser/
total 0
alaa@aa-lu:~$

Puede verificar que el directorio de inicio del usuario esté configurado correctamente al marcar la entrada en /etc/passwd . Debería, de forma predeterminada, ver el directorio de inicio establecido en /home/testinguser :

alaa@aa-lu:~$ grep testinguser /etc/passwd
testinguser:x:1001:1001::/home/testinguser:/bin/sh

Si no ve el directorio de inicio /home/testinguser allí, necesitará ejecutar el comando sudo usermod -d /home/testinguser testinguser para actualizarlo, aunque no debería necesitar usar este comando porque debe establecerse de manera predeterminada (según a las páginas de manual de useradd ).

Salí de mi cuenta y volví a iniciar sesión con testinguser , y aquí están los subdirectorios creados automáticamente:

alaa@aa-lu:~$ ls -l /home/testinguser/
total 36
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Desktop
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Documents
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Downloads
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Music
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:07 Pictures
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Public
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Templates
drwxr-xr-x 2 testinguser testinguser 4096 Aug 23 10:05 Videos

No necesité copiar el contenido de /etc/skel .

Si es posible, ¿puedes intentar seguir estos pasos y crear otro usuario nuevo? Una vez que haya terminado, puede eliminar este nuevo usuario por sudo deluser testinguser && sudo rm -r /home/testinguser .

Si todo esto no funcionó contigo, supongo que es un error.

    
respondido por el Alaa Ali 23.08.2013 - 08:22
12

ACTUALIZACIÓN: la solución está rota y no funciona para mí también.

Si desea crear el directorio de inicio del usuario si no existe, ejecute el comando useradd con el indicador -m . Esto copiará todos los archivos del directorio /etc/skel .

useradd -m username

Es posible que deba configurar los ajustes para su sistema. De acuerdo con la página del manual:

  -m, --create-home
    Create the user's home directory if it does not exist. The files and directories
    contained in the skeleton directory (which can be defined with the -k option)
    will be copied to the home directory.

    By default, if this option is not specified and CREATE_HOME is not enabled, no
    home directories are created.

y además indica:

CONFIGURATION

   The following configuration variables in /etc/login.defs change the behavior
   of this tool:

   CREATE_HOME (boolean)
       Indicate if a home directory should be created by default for new users.
    
respondido por el crafter 22.08.2013 - 21:54
4

Si creó el nuevo usuario con el comando adduser , no necesita crear un directorio de inicio para el nuevo usuario. Un directorio inicial nombrado con el nombre del usuario en el directorio /home , con los siguientes subdirectorios: Escritorio, Descargas, Documentos, Música, Imágenes, Videos (y otros), para el nuevo usuario se creará automáticamente.

Si creó el nuevo usuario con el comando useradd , ejecute los siguientes comandos en la terminal:

sudo -i     #enter your user password when you are asked
gedit /etc/passwd

para editar el archivo /etc/passwd como raíz (este es el paso más importante). Busque la línea con el nombre del nuevo usuario y establezca el directorio de inicio predeterminado para él de la siguiente manera:

new_username:x:1001:1001::/home/new_username:/bin/sh

En esta línea también puede agregar un nombre real para el nuevo usuario o establecer el shell predeterminado. Algo como esto:

new_username:x:1001:1001:Real New Username,,,:/home/new_username:/bin/bash

Tenga cuidado, no haga ningún otro cambio.

Después de guardar el archivo, antes de salir de la cuenta raíz, ejecute los siguientes comandos:

mkdir /home/new_username                                      #to create the directory /home/new_username
cp /etc/skel/* /home/new_username                             #to copy copy files from the /home/new_username
chown -R new_username:new_username /home/new_username   #to change the owner of /home/new_username to the new user

Después de todo esto, la carpeta de inicio del nuevo usuario se completará automáticamente después del primer inicio de sesión.

Ver también: cómo hacer que la carpeta de inicio del usuario después de la cuenta creación?

    
respondido por el Radu Rădeanu 22.08.2013 - 21:18
3

Todo lo que necesita realmente es la carpeta de inicio para que funcione. Como root,

cd /home
cd mkdir username
chown username username
chgrp username username

Al iniciar sesión por primera vez, debe crear todos los archivos necesarios, que parecen ser los siguientes:

drwxr-xr-x 16 fotanus fotanus 4096 Jun  4 17:46 .
drwxr-xr-x  9 root    root    4096 Jun  4 17:43 ..
drwx------ 11 fotanus fotanus 4096 Jun  4 17:46 .cache
drwx------ 13 fotanus fotanus 4096 Jun  4 17:46 .config
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Desktop
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Documents
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Downloads
drwx------  3 fotanus fotanus 4096 Jun  4 17:46 .gconf
drwxrwxr-x  2 fotanus fotanus 4096 Jun  4 17:46 .gstreamer-0.10
-rw-------  1 fotanus fotanus  334 Jun  4 17:45 .ICEauthority
drwxr-xr-x  3 fotanus fotanus 4096 Jun  4 17:45 .local
drwx------  4 fotanus fotanus 4096 Jun  4 17:45 .mozilla
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Music
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Pictures
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Public
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Templates
drwxr-xr-x  2 fotanus fotanus 4096 Jun  4 17:45 Videos
-rw-------  1 fotanus fotanus   55 Jun  4 17:45 .Xauthority
-rw-------  1 fotanus fotanus  711 Jun  4 17:45 .xsession-errors
    
respondido por el fotanus 04.06.2014 - 22:49

Lea otras preguntas en las etiquetas