Значення, яке використовується ~
, визначається із значення, яке ви отримуєте з адміністративної бази даних ( getent passwd
), як правило, у /etc/passwd
файлі, для домашнього каталогу кожного користувача, який там визначений.
$ 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
6-й стовпець у цьому файлі - це значення, яке використовується, коли хтось cd ~
надходить.
nsswitch
Ви можете побачити, що система використовувала б для домашнього каталогу користувача за допомогою команди 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
"База даних", яка забезпечує це, контролюється за допомогою вашої системної резолюції, визначеної в /etc/nsswitch.conf
.
$ grep passwd /etc/nsswitch.conf
#passwd: db files nisplus nis
passwd: files
Файли вгорі означають /etc/passwd
, але "база даних" може надходити, наприклад, з LDAP, NIS або інших локальних мереж.
Переміщення / переосмислення?
Виконувати цю операцію - трохи непросто після створення облікових записів. Якщо ви створюєте облікові записи з нуля, то неважко переосмислити місцезнаходження свого домашнього каталогу користувача. Під час виконання useradd
команди ви можете вказати місце, яке буде використовуватися для домашнього каталогу користувача.
Приклад
$ useradd -d /ext1/acheong ...
уривок зі сторінки man
-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.
Для існуючих облікових записів?
Це стає більш хірургічною операцією, оскільки часто додому в домашній каталог користувача статично включається файли конфігурації, що робить його складнішим.
Приклад
$ grep home /home/sam/.*
/home/sam/.gtkrc-1.2-gnome2:include "/home/sam/.gtkrc.mine"
Вони або повинні бути виправлені, або ви повинні будете надати посилання від /home/sam
на нове місце, /ext1/sam
.
Переміщення, коли "база даних" відсутня /etc/passwd
Якщо система отримує домашні каталоги з LDAP, NIS тощо, вам потрібно буде виконати переїзд у цих системах та узгодити переміщення файлів з /home/sam
на /ext1/sam
.
Список літератури
~
на щось інше, ніж власне домашній каталог?