El problema
Si accidentalmente se cambia el contexto o el permiso de archivo de los archivos del directorio de inicio del usuario, es posible que se produzcan errores de permiso o un comportamiento inesperado de la aplicación después de este sistema de inicio de sesión del usuario.
Por ejemplo, si el permiso de archivo de /home/user1/.bash_profile es incorrecto, el usuario1 de inicio de sesión recibirá el mensaje "/home/user1/.bash_profile:Permiso denegado":
login as: user1 user1@geeklab's password: Last login: Mon Dec 15 15:08:20 2014 from geeklab2.example.com -bash: /home/user1/.bash_profile: Permission denied -bash-3.2$
Esta publicación indica cómo restaurar archivos/subdirectorios en el directorio de inicio del usuario a los valores predeterminados.
La solución
Hay 2 archivos/directorios importantes que se requieren para restaurar el directorio de inicio del usuario a los valores predeterminados. Son principalmente:
1. directorio /etc/skel
El directorio skel
Directorio /etc/skel/ (skel se deriva del "esqueleto") se utiliza para iniciar el directorio de inicio cuando se crea el usuario por primera vez. Un diseño de muestra de archivos de usuario "esqueléticos":
# ls -lart /etc/skel total 32 drwxr-xr-x 4 root root 4096 Feb 4 2016 .mozilla -rw-r--r-- 1 root root 124 Feb 15 2017 .bashrc -rw-r--r-- 1 root root 176 Feb 15 2017 .bash_profile -rw-r--r-- 1 root root 18 Feb 15 2017 .bash_logout drwxr-xr-x. 3 root root 4096 Aug 22 2017 . drwxr-xr-x. 112 root root 12288 Feb 26 03:09 ..Nota :el directorio "esqueleto" está definido en el archivo /etc/default/useradd.
# cat /etc/default/useradd # useradd defaults file GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes
Restaurar un archivo en el directorio de inicio
1. Por ejemplo, si el archivo .bash_profile se elimina del directorio de inicio del usuario como se muestra a continuación.
$ rm ~/.bash_profile # ls -lart /etc/skel total 32 drwxr-xr-x 4 root root 4096 Feb 4 2016 .mozilla -rw-r--r-- 1 root root 124 Feb 15 2017 .bashrc -rw-r--r-- 1 root root 18 Feb 15 2017 .bash_logout drwxr-xr-x. 3 root root 4096 Aug 22 2017 . drwxr-xr-x. 112 root root 12288 Feb 26 03:09 ..
2. Para restaurar el archivo .bash_profile original, copie el archivo predeterminado del directorio "esqueleto":
$ cp /etc/skel/.bash_profile ~/ # ls -lart ~/ total 32 drwxr-xr-x 4 root root 4096 Feb 4 2016 .mozilla -rw-r--r-- 1 root root 124 Feb 15 2017 .bashrc -rw-r--r-- 1 root root 176 Feb 15 2017 .bash_profile -rw-r--r-- 1 root root 18 Feb 15 2017 .bash_logout drwxr-xr-x. 3 root root 4096 Aug 22 2017 . drwxr-xr-x. 112 root root 12288 Feb 26 03:09 ..Nota :Copie el archivo con el privilegio de usuario correspondiente. Si copió el archivo a través del usuario raíz, debe cambiar manualmente la propiedad y el permiso del archivo después.
Restaurar un subdirectorio en el directorio de inicio
Por ejemplo, para restaurar un subdirectorio .mozilla, cópielo con la opción –recursiva (-r):
$ cp -r /etc/skel/.mozilla/ ~/
Restaurar todo el directorio de inicio desde cero
Veamos cómo podemos restaurar todo el directorio de inicio de un usuario. A los efectos de este ejemplo, eliminaremos el directorio de inicio del usuario1.
1. Verifique el UID y el GID del usuario:
$ id user1 uid=54324(user1) gid=54325(user1) groups=54325(user1)
2. Elimine el directorio de inicio del usuario y el usuario a través del privilegio de root:
# rm -rf /home/user1
3. Copie todos los archivos del directorio /etc/skel en el directorio de inicio del usuario.
# cp -r /etc/skel/* ~/
# ls -lart /home/user1/ total 32 drwxr-xr-x 4 root root 4096 Feb 4 2016 .mozilla -rw-r--r-- 1 root root 124 Feb 15 2017 .bashrc -rw-r--r-- 1 root root 176 Feb 15 2017 .bash_profile -rw-r--r-- 1 root root 18 Feb 15 2017 .bash_logout drwxr-xr-x. 3 root root 4096 Aug 22 2017 . drwxr-xr-x. 112 root root 12288 Feb 26 03:09 ..