Masalahnya
Jika secara tidak sengaja konteks atau izin file dari file di bawah direktori home pengguna telah diubah, kesalahan izin atau perilaku aplikasi yang tidak terduga mungkin terjadi setelah sistem login pengguna ini.
Misalnya, jika izin file /home/user1/.bash_profile salah, login user1 akan mendapatkan prompt “/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$
Posting ini menginstruksikan cara mengembalikan file/subdirektori di bawah direktori home pengguna ke default.
Solusinya
Ada 2 file/direktori penting yang diperlukan untuk mengembalikan direktori home pengguna ke default. Mereka terutama:
1. /etc/skel direktori
2. /etc/default/useradd
Direktori skel
Direktori /etc/skel/ (skel berasal dari "kerangka") digunakan untuk memulai direktori home saat pengguna pertama kali dibuat. Contoh tata letak file pengguna "kerangka":
# 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 ..Catatan :Direktori “skeleton” didefinisikan dalam 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
Pulihkan file di bawah direktori home
1. Misalnya, jika file .bash_profile dihapus dari direktori home pengguna seperti yang ditunjukkan di bawah ini.
$ 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. Untuk mengembalikan file .bash_profile asli, salin file default dari direktori “kerangka”:
$ 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 ..Catatan :Salin file di bawah hak pengguna yang sesuai. Jika menyalin file melalui pengguna root, Anda perlu mengubah kepemilikan dan izin file secara manual setelahnya.
Kembalikan sub direktori di bawah direktori home
Misalnya, untuk mengembalikan sub direktori .mozilla, salin dengan opsi –recursive (-r):
$ cp -r /etc/skel/.mozilla/ ~/
Kembalikan seluruh direktori home dari awal
Mari kita lihat bagaimana kita dapat mengembalikan seluruh direktori home untuk pengguna. Untuk tujuan contoh ini, kami akan menghapus direktori home user1.
1. Periksa UID dan GID pengguna:
$ id user1 uid=54324(user1) gid=54325(user1) groups=54325(user1)
2. Hapus direktori home pengguna dan pengguna melalui hak akses root:
# rm -rf /home/user1
3. Salin semua file dari direktori /etc/skel di direktori home pengguna.
# 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 ..