Nilai yang digunakan ~
ditentukan dari nilai yang Anda dapatkan dari database administrasi ( getent passwd
), biasanya dalam /etc/passwd
file, untuk setiap direktori home pengguna yang ditentukan di sana.
$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
sam:x:500:500:Sam Mingolelli:/home/sam:/bin/bash
tracy:x:501:501::/home/tracy:/bin/bash
Kolom ke-6 dalam file ini adalah tempat nilai yang digunakan saat seseorang mengetik cd ~
berasal.
nsswitch
Anda dapat melihat sistem apa yang akan digunakan untuk direktori home pengguna menggunakan perintah getent passwd
:
$ getent passwd
root:x:0:0:root:/root:/bin/bash
sam:x:500:500:Sam Mingolelli:/home/sam:/bin/bash
tracy:x:501:501::/home/tracy:/bin/bash
"Basis data" yang menyediakan ini dikendalikan melalui penyelesai sistem Anda, yang didefinisikan dalam /etc/nsswitch.conf
.
$ grep passwd /etc/nsswitch.conf
#passwd: db files nisplus nis
passwd: files
File di atas berarti /etc/passwd
, tetapi "basis data" dapat berasal dari LDAP, NIS, atau lokasi lain melalui jaringan, misalnya.
Pindah / Definisi Ulang?
Untuk melakukan operasi ini agak sulit setelah akun dibuat. Jika Anda membuat akun dari awal, maka sepele untuk mendefinisikan kembali lokasi pengguna dari direktori home mereka. Saat menjalankan useradd
perintah, Anda dapat menentukan lokasi yang akan digunakan untuk direktori home pengguna.
Contoh
$ useradd -d /ext1/acheong ...
kutipan dari halaman manual
-d, --home HOME_DIR
The new user will be created using HOME_DIR as the value for the user’s
login directory. The default is to append the LOGIN name to BASE_DIR and
use that as the login directory name. The directory HOME_DIR does not
have to exist but will not be created if it is missing.
Untuk akun yang ada?
Ini menjadi lebih dari operasi bedah karena sering kali jalur direktori home pengguna dimasukkan secara statis dalam file konfigurasi, menjadikannya lebih rumit.
Contoh
$ grep home /home/sam/.*
/home/sam/.gtkrc-1.2-gnome2:include "/home/sam/.gtkrc.mine"
Ini perlu diperbaiki, atau Anda harus memberikan tautan dari /home/sam
ke lokasi baru /ext1/sam
,.
Pindah ketika "database" tidak /etc/passwd
Jika sistem mendapatkan direktori home dari LDAP, NIS, dll. Maka Anda perlu mengatur relokasi dalam sistem tersebut, dan berkoordinasi dengan memindahkan file dari /home/sam
ke /ext1/sam
.
Referensi
~
menjadi sesuatu selain direktori home yang sebenarnya?