Le problème
Si accidentellement le contexte ou l'autorisation de fichier des fichiers sous le répertoire personnel de l'utilisateur avait été modifié, des erreurs d'autorisation ou un comportement inattendu de l'application pourraient survenir après ce système de connexion de l'utilisateur.
Par exemple, si l'autorisation de fichier de /home/user1/.bash_profile est erronée, l'utilisateur de connexion1 recevra l'invite "/home/user1/.bash_profile :autorisation refusée" :
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$
Ce message explique comment restaurer les fichiers/sous-répertoires sous le répertoire personnel de l'utilisateur par défaut.
La solution
Il y a 2 fichiers/répertoires importants qui sont nécessaires pour restaurer le répertoire de base de l'utilisateur par défaut. Ce sont principalement :
1. /etc/skel répertoire
Le répertoire skel
Répertoire /etc/skel/ (skel est dérivé du "squelette") est utilisé pour lancer le répertoire personnel lors de la première création de l'utilisateur. Exemple de mise en page de fichiers utilisateur "squelette" :
# 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 ..Remarque :le répertoire "skeleton" est défini dans le fichier /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
Restaurer un fichier sous le répertoire personnel
1. Par exemple, si le fichier .bash_profile est supprimé du répertoire personnel de l'utilisateur, comme indiqué ci-dessous.
$ 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. Pour restaurer le fichier .bash_profile d'origine, copiez le fichier par défaut du répertoire "skeleton" :
$ 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 ..Remarque :Copiez le fichier sous le privilège d'utilisateur correspondant. Si vous avez copié le fichier via l'utilisateur root, vous devez ensuite modifier manuellement la propriété et l'autorisation du fichier.
Restaurer un sous-répertoire sous le répertoire personnel
Par exemple, pour restaurer un sous-répertoire .mozilla, copiez-le avec l'option –recursive (-r) :
$ cp -r /etc/skel/.mozilla/ ~/
Restaurer tout le répertoire personnel à partir de zéro
Voyons comment nous pouvons restaurer l'intégralité du répertoire personnel d'un utilisateur. Pour les besoins de cet exemple, nous allons supprimer le répertoire personnel de user1.
1. Vérifiez l'UID et le GID de l'utilisateur :
$ id user1 uid=54324(user1) gid=54325(user1) groups=54325(user1)
2. Supprimez le répertoire personnel de l'utilisateur et l'utilisateur via le privilège root :
# rm -rf /home/user1
3. Copiez tous les fichiers du répertoire /etc/skel dans le répertoire personnel de l'utilisateur.
# 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 ..