¿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.
command-line
home-directory
Jo Rijo
fuente
fuente
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.Respuestas:
Use lo siguiente (como root, o con sudo si no es root):
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.
fuente
ls -l /home
. Descubrí que todos los demás usuarios podían leer el nuevo directorio, así que eliminé esos permisos conchmod 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:
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
:Si no ve el directorio de inicio
/home/testinguser
allí, deberá ejecutar el comandosudo usermod -d /home/testinguser testinguser
para actualizarlo, aunque no es necesario que use este comando porque debe estar configurado de manera predeterminada (de acuerdo conuseradd
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: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.
fuente
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.Es posible que deba configurar los ajustes de su sistema. Según la página del manual:
y además indica:
fuente
-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: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:En esta línea también puede agregar un nombre real para el nuevo usuario o establecer el shell predeterminado. Algo como esto:
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:
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?
fuente
/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 usandoadduser
, en lugar deuseradd
.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 doschown
comandos consecutivos ?Todo lo que necesitas realmente es la carpeta de inicio para que funcione. Como root,
Iniciar sesión por primera vez debería crear todos los archivos necesarios, que parecen ser esos:
fuente