Partition

列印主目錄的完整路徑

  • October 28, 2021

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

$HOME設置/etc/passwd為使用者的內容。要親自查看,請創建一個名為/opt/username使用者的目錄,使他們成為所有者,然後使用vipw將他們的家更改為/opt/usernamein /etc/passwd。以使用者身份登錄並使用pwd,您會看到他們在/opt/username其中,並且$HOME擴展為/opt/username.

如果您使用命令grep username /etc/passwdor getent passwd username,那麼您將看到 home 設置為/home/username而不是/mnt/linux_data/01_centos/user。就作業系統而言,home 確實/home/username與是否安裝了另一個文件系統無關。您的系統執行正常。

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

引用自:https://unix.stackexchange.com/questions/675080