Problém
Pokud se náhodou změnil kontext nebo oprávnění k souborům v domovském adresáři uživatele, může po tomto systému přihlášení uživatele dojít k chybám oprávnění nebo neočekávanému chování aplikace.
Pokud je například oprávnění souboru /home/user1/.bash_profile nesprávné, zobrazí se uživateli přihlášení „/home/user1/.bash_profile:Permission denied“:
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$
Tento příspěvek popisuje, jak obnovit soubory/podadresáře v domovském adresáři uživatele do výchozího stavu.
Řešení
Existují 2 důležité soubory/adresáře, které jsou nutné k obnovení výchozího domovského adresáře uživatele. Jsou to především:
1. /etc/skel adresář
2. /etc/default/useradd
Adresář skel
Adresář /etc/skel/ (skel je odvozen od „kostra“) se používá k zahájení domovského adresáře při prvním vytvoření uživatele. Ukázkové rozvržení „kostry“ uživatelských souborů:
# 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 ..Poznámka :Adresář „skeleton“ je definován v souboru /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
Obnovení souboru v domovském adresáři
1. Pokud je například soubor .bash_profile odstraněn z domovského adresáře uživatele, jak je uvedeno níže.
$ 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. Chcete-li obnovit původní soubor .bash_profile, zkopírujte výchozí soubor z adresáře „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 ..Poznámka :Zkopírujte soubor s odpovídajícím uživatelským oprávněním. Pokud jste soubor zkopírovali přes uživatele root, musíte poté ručně změnit vlastnictví a oprávnění k souboru.
Obnovení podadresáře v domovském adresáři
Chcete-li například obnovit podadresář .mozilla, zkopírujte jej pomocí volby –recursive (-r):
$ cp -r /etc/skel/.mozilla/ ~/
Obnovte celý domovský adresář od začátku
Podívejme se, jak můžeme obnovit celý domovský adresář pro uživatele. Pro účely tohoto příkladu smažeme domovský adresář uživatele1.
1. Zkontrolujte UID a GID uživatele:
$ id user1 uid=54324(user1) gid=54325(user1) groups=54325(user1)
2. Smažte domovský adresář uživatele a uživatele pomocí oprávnění root:
# rm -rf /home/user1
3. Zkopírujte všechny soubory z adresáře /etc/skel do domovského adresáře uživatele.
# 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 ..