GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo restaurar archivos en el directorio de inicio del usuario a los valores predeterminados en Linux

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
2. /etc/default/useradd

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 ..


Linux
  1. Cómo restaurar el directorio /tmp eliminado en Linux

  2. Cómo usar FTP en Linux para transferir archivos

  3. ¿Cuál es el propósito del archivo .bash_profile en User Home Directory en Linux?

  4. Cómo identificar usuarios que eliminan archivos de un directorio determinado en Linux

  5. ¿Cómo copio un archivo/carpeta del directorio de inicio de otro usuario en Linux?

Cómo enumerar todos los usuarios en Linux

Crear directorio de inicio para usuarios existentes en Linux

Cómo listar archivos recursivamente en Linux

Cómo contar archivos en el directorio en Linux

Cómo contar el número de archivos en un directorio en Linux

Cómo crear/agregar usuarios en Linux