ホームディレクトリのフルパスを印刷する

ホームディレクトリのフルパスを印刷する

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/userCajaのアイコンでナビゲートできますが、オペレーティング/rootシステムが考えるフルパスを印刷する方法が必要です /home

答え1

$HOME/etc/passwdユーザーに必要なものを設定します。自分で確認するには、/opt/usernameUserというディレクトリを作成して所有者として指定し、を使用して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変数に反映されます。

関連情報