echo $HOME
のみ印刷されます /home/user
。しかし、私のシステムでは、/home
独自のパーティションの下にインストールされておらず、/
独自のパーティションでもありません。
# shared linux data partition, `/home` is here
UUID=a89334f7-59b7-4d04-b89b-a5a30c379644 /mnt/linux_data ext4 defaults 1 2
ホームディレクトリは、バインドマウントを使用してマウントされます。
# bind mount /home to directory to a directory on /linux_data
/mnt/linux_data/01_centos /home none bind 0 0
Cajaのホームディレクトリアイコンをクリックすると、場所バーが表示されます /home/user
。ただし、ディレクトリは実際には/mnt/linux_data/01_centos/user
その場所に存在する必要があります。/mnt/linux_data/01_centos/user
Cajaのアイコンでナビゲートできますが、オペレーティング/root
システムが考えるフルパスを印刷する方法が必要です /home
。
答え1
$HOME
/etc/passwd
ユーザーに必要なものを設定します。自分で確認するには、/opt/username
Userというディレクトリを作成して所有者として指定し、を使用してvipw
ホームディレクトリをに変更し/opt/username
ます/etc/passwd
。ユーザーとしてログインしてを使用すると、その項目がに展開されているpwd
ことがわかります。/opt/username
$HOME
/opt/username
grep username /etc/passwd
または、コマンドを使用すると、代わりにgetent passwd username
ホームがに設定されていることがわかります。オペレーティングシステムに関する限り、ホームディレクトリは実際に他のファイルシステムがマウントされているかどうかには関係ありません。システムが正常に動作しています。/home/username
/mnt/linux_data/01_centos/user
/home/username
LDAPについて明確に説明すると、LDAPを介して認証されたユーザーがいる場合、そのユーザーのホームディレクトリはLDAPサーバー(通常はActive Directory)に割り当てられます。引き続き表示できgetent passwd
、変更すると$HOME
変数に反映されます。