¿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 de inicio predeterminado con todas sus carpetas y archivos ocultos, etc.
fuente
¿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 de inicio predeterminado con todas sus carpetas y archivos ocultos, etc.
Use 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.
ls -l /home
. Descubrí que todos los demás usuarios podían leer el nuevo directorio, así que eliminé esos permisos con chmod go-r-x /home/username
.
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 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 Ingrese 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 22 de agosto 22:00 alaa drwx ------ 2 raíz raíz 16384 5 de junio 09:46 perdido + encontrado 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 22 de agosto 22:00 alaa drwx ------ 2 raíz raíz 16384 5 de junio 09:46 perdido + encontrado drwxr-xr-x 2 testinguser testinguser 4096 23 de agosto 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 ingresar la entrada /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í, deberá ejecutar el comando sudo usermod -d /home/testinguser testinguser
para actualizarlo, aunque no es necesario que use este comando porque debe estar configurado de manera predeterminada (de acuerdo con useradd
las páginas de manual).
Luego salí de mi cuenta y volví a iniciar sesión 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 23 de agosto 10:05 Escritorio drwxr-xr-x 2 testinguser testinguser 4096 23 de agosto 10:05 Documentos drwxr-xr-x 2 testinguser testinguser 4096 23 de agosto 10:05 Descargas drwxr-xr-x 2 testinguser testinguseruser 4096 23 de agosto 10:05 Música drwxr-xr-x 2 testinguser testinguser 4096 23 de agosto 10:07 Imágenes drwxr-xr-x 2 testinguser testinguseruser 4096 23 de agosto 10:05 Público drwxr-xr-x 2 testinguser testinguser 4096 23 de agosto 10:05 Plantillas drwxr-xr-x 2 testinguser testinguser 4096 23 de agosto 10:05 Videos
No necesitaba copiar el contenido de /etc/skel
.
Si es posible, ¿puede intentar seguir estos pasos y crear otro usuario nuevo? Una vez que haya terminado, puede eliminar a este nuevo usuario sudo deluser testinguser && sudo rm -r /home/testinguser
.
Si todo esto no funcionó contigo, entonces supongo que es un error.
useradd
, el directorio de inicio predeterminado para el nuevo usuario no se establece automáticamente en /home/username
. Entonces, primero debes estar seguro de eso.
useradd
: "useradd usará 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á definida de manera predeterminada, por lo que useradd siempre la usará /home
. De todos modos, editaré mi respuesta y moveré la parte para verificar /etc/passwd
.
/bin/sh
en la línea de usuario /etc/passwd
, debe agregar un shell para ese usuario, por ejemplo, el shell predeterminado conusermod -s /bin/sh testuser
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 useradd
comando con el -m
indicador. Esto copiará todos los archivos del /etc/skel
directorio.
useradd -m username
Es posible que deba configurar los ajustes de su sistema. Según 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.
-m
bandera al crear un nuevo usuario de todos modos, y no funcionó; solo copia los archivos de esqueleto.
/etc/skel
no crea los subdirectorios en el directorio de inicio. Además, useradd -m
se usa al crear un nuevo usuario, no cuando el usuario ya está agregado.
Si creó el nuevo usuario con el adduser
comando, no necesita crear un directorio de inicio para el nuevo usuario. Se /home
creará automáticamente un directorio de inicio con el nombre del usuario en el directorio, con los siguientes subdirectorios: Escritorio, Descargas, Documentos, Música, Imágenes, Videos (y otros), para el nuevo usuario.
Si creó el nuevo usuario con el useradd
comando, ejecute los siguientes comandos en la terminal:
sudo -i #enter your user password when you are asked
gedit /etc/passwd
para editar el /etc/passwd
archivo como root (este es el paso más importante). Busque la línea con el nombre del nuevo usuario y configure 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 -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 completará automáticamente después del primer inicio de sesión.
Consulte también: ¿Cómo crear la carpeta de inicio del usuario después de la creación de la cuenta?
/etc/passwd
(si aún no está allí). Una vez que el usuario inicia sesión, la carpeta de inicio se completará automáticamente con esos subdirectorios. Sin embargo, todo esto se soluciona si alguien agrega un usuario usando adduser
, en lugar de useradd
.
adduser
: la carpeta de inicio se crea automáticamente. Y, de hecho, la carpeta de inicio se completará automáticamente después del primer inicio de sesión.
cp /etc/skel/* /home/new_username
? Además, ¿hay alguna razón por la que usa dos chown
comandos consecutivos ?
Todo lo que necesitas realmente es la carpeta de inicio para que funcione. Como root,
cd /home
cd mkdir username
chown username username
chgrp username username
Iniciar sesión por primera vez debería 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
su new_user
: Dsudo -i -u new_user
pero no funciona. Creo que necesitamos "simular un inicio de sesión X" ... no sé cómo hacerlo.