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
변수에 반영됩니다.