¿Cómo lo hago? He creado un usuario sin directorio raíz y ahora quiero crear uno. No sólo una carpeta llamada new_user, quiero el directorio raíz por defecto con todas sus carpetas y archivos ocultos, etc.
Los subdirectorios (Documentos, Descargas, etc...) se crean automáticamente cuando el usuario se conecta por primera vez a través de GNOME, siempre que el directorio de inicio se cree con los permisos correctos. Aquí'hay una demostración:
alaa@aa-lu:~$ sudo useradd testinguser alaa@aa-lu:~$ sudo passwd testinguser Introduzca la nueva contraseña UNIX: Vuelva a escribir la nueva contraseña UNIX: passwd: contraseña actualizada con éxito alaa@aa-lu:~$ sudo ls -l /home total 20 drwxr-xr-x 55 alaa alaa 4096 Aug 22 22:00 alaa drwx------ 2 root 16384 Jun 5 09:46 lost+found alaa@aa-lu:~$ sudo mkdir /home/testinguser 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 16384 Jun 5 09:46 lost+found drwxr-xr-x 2 testinguser testinguser 4096 Ago 23 10:03 testinguser alaa@aa-lu:~$ ls -l /home/testinguser/ total 0 alaa@aa-lu:~$
Puede comprobar que el directorio principal del usuario está correctamente configurado comprobando la entrada en /etc/passwd
. Deberías ver, por defecto, que el directorio raíz está configurado como /home/testinguser
:
alaa@aa-lu:~$ grep testinguser /etc/passwd testinguser:x:1001:1001::/home/testinguser:/bin/sh;
Si no ves el directorio home /home/testinguser
ahí, tendrás que ejecutar el comando sudo usermod -d /home/testinguser testinguser
para actualizarlo, aunque no deberías necesitar usar este comando porque debería estar configurado por defecto (según las páginas de manual de useradd
).
Luego salí de mi cuenta, y volví a entrar 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 Ago 23 10:05 Desktop drwxr-xr-x 2 testinguser testinguser 4096 Ago 23 10:05 Documentos drwxr-xr-x 2 testinguser testinguser 4096 Ago 23 10:05 Descargas drwxr-xr-x 2 testinguser testinguser 4096 Ago 23 10:05 Música drwxr-xr-x 2 testinguser testinguser 4096 Ago 23 10:07 Imágenes drwxr-xr-x 2 testinguser testinguser 4096 Ago 23 10:05 Público drwxr-xr-x 2 testinguser testinguser 4096 Ago 23 10:05 Plantillas drwxr-xr-x 2 testinguser testinguser 4096 Ago 23 10:05 Videos
No necesitaba copiar el contenido de /etc/skel
.
Si es posible, ¿puedes intentar seguir estos pasos, creando otro usuario nuevo? Una vez que haya terminado, puede eliminar este nuevo usuario mediante sudo deluser testinguser && sudo rm -r /home/testinguser
.
Si todo esto no te ha funcionado, entonces supongo que es un error.
Actualización: La solución está rota y no funciona para mí también.
Si quieres crear el directorio principal del usuario si no existe, entonces ejecuta el comando useradd
con la bandera m
. Esto copiará todos los archivos del directorio /etc/skel
.
useradd -m username
Es posible que tenga que configurar los ajustes para su sistema. Según la página man :
-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.
Si creó el nuevo usuario con el comando adduser
, no necesita crear un directorio home para el nuevo usuario. Un directorio home nombrado con el nombre del usuario en el directorio /home
, con los siguientes subdirectorios: Escritorio, Descargas, Documentos, Música, Imágenes, Vídeos (y otros), para el nuevo usuario se creará automáticamente.
Si ha creado el nuevo usuario con el comando useradd
, ejecute los siguientes comandos en el terminal:
lenguaje: bash -->
sudo -i #enter your user password when you are asked
gedit /etc/passwd
para editar el archivo /etc/passwd
como root (este es el paso más importante). Encuentre la línea con el nombre del nuevo usuario y establezca el directorio de inicio por defecto para él algo así
new_username:x:1001:1001::/home/new_username:/bin/sh
En esta línea también puedes añadir un nombre real para el nuevo usuario, o establecer el shell por defecto. Algo así:
new_username:x:1001:1001:Real New Username,,,:/home/new_username:/bin/bash
Ten cuidado, no hagas ningún otro cambio.
Después de guardar el archivo, antes de salir de la cuenta de root, ejecute los siguientes comandos:
lenguaje: bash -->
mkdir /home/new_username #to create the directory /home/new_username
cp -r /etc/skel/. /home/new_username #to copy skeleton files to /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 para el nuevo usuario se rellenará automáticamente después del primer inicio de sesión.
Véase también: https://askubuntu.com/questions/152707/how-to-make-user-home-folder-after-account-creation