$ HOME環境変数はLinuxシステムで常に設定されていますか?


13

マシンがLinuxカーネルを実行していると仮定すると、セッションはBashシェルを使用し、すべてがデフォルト構成を使用します(ユーザーは構成ファイルを変更していません)、$HOME環境変数が常に設定されていると仮定できますか?


nobody家がありません!(それnobodyは、ユーザーです。)
devnull 14

1
@devnullにホームがない(つまり、存在しないホームディレクトリが指定されている)ことは、$ HOME envを意味しません。変数を設定できません。設定されている場合、既存のディレクトリやホームエントリを指す必要はありません/etc/passwd
Anthon 14

回答:


16

はい。POSIX仕様は 必要です $ HOMEの値を設定するためにOSを:

HOME
システムは、ログイン時にこの変数を初期化して、ユーザーのホームディレクトリのパス名にします。pwd.hを参照してください。

ユーザーはnobodyどうですか?

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

にもかかわらずnobody真の家庭を持っていない、HOMEルートディレクトリに設定されています。


設定するのはシェルではなく、HOMEzsh以外の一般的なシェルはありません。ログインするプログラムです(cronなどのメソッドを含む)。
ジル「SO-悪であるのをやめる」14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.