$ HOME 환경 변수는 항상 Linux 시스템에 설정되어 있습니까?


13

머신이 Linux 커널을 실행 중이고 세션이 Bash 쉘을 사용하고 모든 것이 기본 구성을 사용하고 있다고 가정하면 (사용자가 구성 파일을 변경하지 않은 경우) $HOME환경 변수가 항상 설정 되었다고 가정 할 수 있습니까?


nobody집이 없습니다! (그것은 nobody사용자입니다.)
devnull

1
@devnull에 홈이 없거나 (예 : 존재하지 않는 홈 디렉토리가 지정됨) $ HOME 환경을 의미하지는 않습니다. 변수를 설정할 수 없습니다. 설정되어 있으면 기존 디렉토리 나 홈 항목을 가리킬 필요가 없습니다/etc/passwd
Anthon

답변:


17

예. POSIX 사양은 필요 $ HOME에 대한 값을 설정하기 위해 OS를 :

HOME
로그인시 시스템은이 변수를 사용자 홈 디렉토리의 경로 이름으로 초기화해야합니다. pwd.h를 참조하십시오.

사용자는 nobody어떻습니까?

# su - nobody
No directory, logging in with HOME=/
$ echo $HOME
/

비록 nobody진정한 집이없는, HOME루트 디렉토리로 설정됩니다.


설정하는 쉘 아닌 HOME일반 쉘의 어느 것도 zsh을 제외하지 않는다 -. cron과 같은 메소드를 포함하여 로그인하는 프로그램입니다.
Gilles 'SO- 악한 중지'
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.