列印主目錄的完整路徑

列印主目錄的完整路徑

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使用者的目錄,使他們成為擁有者,然後使用vipw將其主目錄變更為/opt/usernamein /etc/passwd。以使用者身分登入並使用pwd,您將看到它們位於/opt/username並且$HOME擴展為/opt/username.

如果您使用命令grep username /etc/passwdgetent passwd username,那麼您將看到 home 設定為/home/username而不是/mnt/linux_data/01_centos/user。就作業系統而言,主目錄確實/home/username與是否安裝了另一個檔案系統無關。您的系統正在正常運作。

為了澄清 LDAP,如果有透過 LDAP 進行驗證的用戶,那麼他們的主目錄將在 LDAP 伺服器(通常是 Active Directory)中指定。您仍然可以看到它getent passwd,如果它發生了變化,$HOME變數將反映這一點。

相關內容