GNU/Linux >> Linux Esercitazione >  >> Linux

Come ripristinare i file nella directory home dell'utente ai valori predefiniti in Linux

Il problema

Se il contesto o l'autorizzazione ai file dei file nella directory home dell'utente sono stati modificati accidentalmente, potrebbero verificarsi errori di autorizzazione o comportamenti imprevisti dell'applicazione dopo questo sistema di accesso utente.

Ad esempio, se l'autorizzazione del file di /home/user1/.bash_profile è errata, l'utente di accesso1 riceverà il messaggio "/home/user1/.bash_profile:Permesso negato":

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$

Questo post spiega come ripristinare i file/sottodirectory nella directory home dell'utente ai valori predefiniti.

La soluzione

Ci sono 2 file/directory importanti che sono necessari per ripristinare la home directory dell'utente ai valori predefiniti. Sono principalmente:
1. /etc/directory skel
2. /etc/default/useradd

La directory skel

Directory /etc/skel/ (skel è derivato dallo "scheletro") viene utilizzato per avviare la directory home quando l'utente viene creato per la prima volta. Un layout di esempio di file utente "scheletro":

# 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 :la directory "scheletro" è definita nel file /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

Ripristina un file nella directory home

1. Ad esempio, se il file .bash_profile viene rimosso dalla home directory dell'utente come mostrato di seguito.

$ 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. Per ripristinare il file .bash_profile originale, copia il file predefinito dalla directory "scheletro":

$ 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 :copia il file con il privilegio utente corrispondente. Se il file viene copiato tramite l'utente root, in seguito è necessario modificare manualmente la proprietà e l'autorizzazione del file.

Ripristina una sottodirectory nella home directory

Ad esempio, per ripristinare una sottodirectory .mozilla, copiala con l'opzione –recursive (-r):

$ cp -r /etc/skel/.mozilla/ ~/

Ripristina l'intera home directory da zero

Vediamo come possiamo ripristinare l'intera home directory per un utente. Ai fini di questo esempio, cancelleremo la home directory di user1.
1. Controlla l'UID e il GID utente:

$ id user1
uid=54324(user1) gid=54325(user1) groups=54325(user1)

2. Elimina la directory home dell'utente e l'utente tramite il privilegio di root:

# rm -rf /home/user1

3. Copia tutti i file dalla directory /etc/skel nella directory home dell'utente.

# 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. Come utilizzare FTP in Linux per trasferire file

  2. Qual è lo scopo del file .bash_profile nella directory home dell'utente in Linux

  3. Come identificare l'utente che elimina i file da una determinata directory in Linux

  4. Come trovare la home directory di un utente su Linux o Unix?

  5. Come posso copiare un file/cartella dalla home directory di un altro utente in Linux?

Come elencare tutti gli utenti in Linux

Crea directory home per utenti esistenti in Linux

Come elencare i file in modo ricorsivo in Linux

Come contare i file nella directory su Linux

Come contare il numero di file in una directory in Linux

Come creare/aggiungere utenti in Linux