214 votos

Crear el directorio principal predeterminado para el usuario existente en la terminal

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

0 votos

Cuando el usuario inicie la sesión, esos subdirectorios (Documentos, Descargas, etc...) se crearán automáticamente. Aunque estoy buscando la forma de "simular" su inicio de sesión a través del terminal.

0 votos

@Alaa su new_user :D

1 votos

@RaduRadeanu sí, ya lo he intentado, también he probado sudo -i -u new_user pero no funciona. Creo que hay que "simular un inicio de sesión X"... no sé cómo hacerlo.

313voto

kavadias Puntos 173

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 gráfico; se generarán automáticamente la primera vez que inicie sesión.

2 votos

Simple y útil. De esta manera también puedes estar seguro de que el home dir recién creado cumple con las políticas de tu sistema, sin necesidad de conocerlas ni de hacer ninguna manipulación manual.

0 votos

Esta es la respuesta correcta, al menos a mí me ha funcionado en Ubuntu 14.04.2 LTS.

1 votos

Tuve que tener mi nombre de usuario en /etc/passwd primero antes de que esto funcionara para mí.

34voto

Alaa Ali Puntos 12198

Los subdirectorios (Documentos, Descargas, etc...) se crean automáticamente cuando el usuario inicia sesión a través de GNOME, siempre que el directorio es creado con los permisos correctos. Aquí una muestra:

<b>alaa@aa-lu:~$</b> sudo useradd testinguser
<b>alaa@aa-lu:~$</b> sudo passwd testinguser
Introduzca la nueva contraseña de UNIX:
Vuelva a escribir la nueva contraseña de UNIX:
passwd: contraseña actualizada correctamente
<b>alaa@aa-lu:~$</b> sudo ls -l /home
un total de 20
drwxr-xr-x 55 alaa alaa 4096 Ago 22 22:00 alaa
drwx------ 2 la root de la root 16384 5 de Junio 09:46 lost+found
<b>alaa@aa-lu:~$</b> sudo mkdir /home/testinguser
<b>alaa@aa-lu:~$</b> sudo chown testinguser:testinguser /home/testinguser
<b>alaa@aa-lu:~$</b> ls -l /home
un total de 24
drwxr-xr-x 55 alaa alaa 4096 Ago 22 22:00 alaa
drwx------ 2 la root de la root 16384 5 de Junio 09:46 lost+found
drwxr-xr-x 2 testinguser testinguser 4096 23 de Agosto de 10:03 testinguser
<b>alaa@aa-lu:~$</b> ls -l /home/testinguser/
total 0
<b>alaa@aa-lu:~$</b>

Se puede comprobar que el directorio de inicio del usuario está correctamente configurado mediante la comprobación de la entrada en /etc/passwd. Usted debe, por defecto, consulte el directorio de inicio establece en /home/testinguser:

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

Si no ves el directorio /home/testinguser no, tendrás que ejecutar el comando sudo usermod -d /home/testinguser testinguser actualizarla, aunque usted no necesita usar este comando, ya que debe ser configurado por defecto (según useradd's de las páginas de manual).

Luego me sali de mi cuenta, y registrado en testinguser, y aquí están los subdirectorios creados automáticamente:

<b>alaa@aa-lu:~$</b> ls -l /home/testinguser/
total 36
drwxr-xr-x 2 testinguser testinguser 4096 23 de Agosto de 10:05 Escritorio
drwxr-xr-x 2 testinguser testinguser 4096 23 de Agosto de 10:05 Documentos
drwxr-xr-x 2 testinguser testinguser 4096 23 de Agosto de 10:05 Descargas
drwxr-xr-x 2 testinguser testinguser 4096 23 de Agosto de 10:05 de la Música
drwxr-xr-x 2 testinguser testinguser 4096 23 de Agosto de 10:07 Fotos
drwxr-xr-x 2 testinguser testinguser 4096 23 de Agosto de 10:05 Público
drwxr-xr-x 2 testinguser testinguser 4096 23 de Agosto de 10:05 Plantillas
drwxr-xr-x 2 testinguser testinguser 4096 23 de Agosto de 10:05 Videos

No tenía la necesidad de copiar el contenido de /etc/skel.

Si es posible, puede usted por favor trate de seguir estos pasos, la creación de otro nuevo usuario? Una vez que haya terminado, usted puede eliminar este usuario nuevo por sudo deluser testinguser && sudo rm -r /home/testinguser.

Si todo esto no nofunciona con usted, supongo que es un fallo.

1 votos

En alguna situación cuando se utiliza useradd el directorio de inicio por defecto para el nuevo usuario no se establece automáticamente en /home/username . Por lo tanto, primero debe estar seguro de ello.

0 votos

¿Puede darme un ejemplo de estas situaciones =)? De las páginas man de useradd : " useradd utilizará el directorio base especificado por la variable HOME en /etc/default/useradd o /home por defecto". La variable HOME en /etc/default/useradd no está definido por defecto, por lo que useradd siempre utilizará /home . De todos modos, voy a editar mi respuesta y mover la parte para comprobar /etc/passwd arriba.

0 votos

Un ejemplo aquí . Otro ejemplo: Borras un usuario, pero no borraste sus directorios y archivos; y luego vuelves a añadir un usuario con el mismo nombre. Y hay muchos, y no hay bugs :)

16voto

crafter Puntos 285

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 useradd con el mando con el -m flag. Esto copiará todos los archivos de la /etc/skel directorio.

useradd -m username

Puede que tengas que configurar los ajustes de tu sistema. De acuerdo con la página de 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.

10 votos

Esto parece intentar crear un nuevo usuario, porque me dice "el usuario 'nuevo-usuario' ya existe".

0 votos

También he probado el -m al crear un nuevo usuario, y no funcionó; sólo copia los archivos del esqueleto.

0 votos

@Jo: Y cómo es esto incorrecto, porque según el post inicial, el usuario sí existe.

7voto

Radu Rădeanu Puntos 62671

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

Si ha creado el nuevo usuario con useradd y luego ejecutar los siguientes comandos en la terminal:

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

para editar /etc/passwd archivo como root (este es el paso más importante). Encuentra la línea con el nombre del nuevo usuario y establece el directorio principal por defecto para él algo como esto:

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 valor predeterminado Shell. 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, ejecuta 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 para el nuevo usuario se llenará automáticamente después de la primera entrada.

Ver también: ¿Cómo crear la carpeta de inicio del usuario después de la creación de la cuenta?

0 votos

Que yo recuerde, la carpeta de inicio no se crea automáticamente, hay que crearla manualmente y actualizar la entrada del usuario en /etc/passwd (si no está ya ahí). Una vez que el usuario se conecta, la carpeta de inicio se llenará automáticamente con esos subdirectorios. Sin embargo, todo esto se soluciona si alguien añade un usuario utilizando adduser , en lugar de useradd .

0 votos

@Alaa Acabo de probar hace unos días y he utilizado adduser La carpeta de inicio: la carpeta de inicio es creado automáticamente. Y, efectivamente, la carpeta de inicio se rellenará automáticamente tras el primer acceso.

0 votos

Esto parece no hacer nada.tal vez voy a probar el bash script de la otra pregunta, pero no podría simplemente crear una carpeta en /home/ llamada new_user, y luego copiar el contenido de /etc/skel a ella? es que lo que ese bash-script hace?

3voto

Markus Puntos 135

Todo lo que necesitas en realidad es la carpeta de inicio para que funcione. Como root,

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

Al entrar con la primera vez se deben crear todos los archivos necesarios, que parecen ser esos:

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

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X