GNU/Linux >> Znalost Linux >  >> Linux

Jak obnovit soubory v domovském adresáři uživatele do výchozího nastavení v Linuxu

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


Linux
  1. Jak odstranit uživatelské účty pomocí domovského adresáře v systému Linux

  2. Jak používat FTP pod Linuxem k přenosu souborů

  3. Jaký je účel souboru .bash_profile pod uživatelským domovským adresářem v Linuxu

  1. Jak identifikovat uživatele, který maže soubory z daného adresáře v Linuxu

  2. Jak najít domovský adresář uživatele na linuxu nebo unixu?

  3. Jak zkopíruji soubor/složku z domovského adresáře jiného uživatele v Linuxu?

  1. Jak obnovit smazaný adresář /tmp v Linuxu

  2. Jak přizpůsobit uživatelská prostředí Linuxu

  3. Linux – Jak nastavit výchozí oprávnění k souborům pro všechny složky/soubory v adresáři?