Next: Init Non-ASCII, Previous: Terminal Init, Up: Init File [Contents][Index]

#### 51.4.4 How Emacs Finds Your Init File

Normally Emacs uses the environment variable `HOME` (see HOME) to find `.emacs`; that’s what ‘`~`’ means in a file name. If `.emacs` is not found inside `~/` (nor `.emacs.el`), Emacs looks for `~/.emacs.d/init.el` (which, like `~/.emacs.el`, can be byte-compiled).

However, if you run Emacs from a shell started by `su`, Emacs tries to find your own `.emacs`, not that of the user you are currently pretending to be. The idea is that you should get your own editor customizations even if you are running as the super user.

More precisely, Emacs first determines which user’s init file to use. It gets your user name from the environment variables `LOGNAME` and `USER`; if neither of those exists, it uses effective user-ID. If that user name matches the real user-ID, then Emacs uses `HOME`; otherwise, it looks up the home directory corresponding to that user name in the system’s data base of users.