Назад | Перейти на главную страницу

Где находится $ HOME в Centos 6.3

Где переменная окружения $ HOME установлена ​​в Centos 6.3?

Я заглянул в:

Кроме того, предпоследний столбец в / etc / passwd имеет правильный домашний каталог.

SELinux отключен, прошу.

Программы входа в систему устанавливают эти переменные. Вы, конечно, можете переопределить HOME, если необходимо, или даже отключить его, но если вы не приложили усилий, чтобы изменить исходный код каждой программы, вы никогда не сможете от него избавиться.

Обратите внимание, даже если вы измените HOME на что-то еще, авторитетный источник вашего домашнего каталога всегда будет присутствовать в passwd или nsswitch производная.

Если вы входите в систему через настоящий TTY, логин установит его.

Из util-linux в login-utils / login.c

setenv("HOME", pwd->pw_dir, 0); /* legal to override */
setenv("USER", pwd->pw_name, 1);
setenv("SHELL", pwd->pw_shell, 1);
setenv("TERM", termenv, 1);

Если вы войдете через SSH, sshd установит это:

Из session.c в sshd

child_set_env(&env, &envsize, "USER", pw->pw_name);
child_set_env(&env, &envsize, "LOGNAME", pw->pw_name);
child_set_env(&env, &envsize, "HOME", pw->pw_dir);

Если вы войдете в систему через GDM, он установит его там.

Из gdm в daemon / gdm-session-worker.c

gdm_session_worker_set_environment_variable (worker, "LOGNAME", worker->priv->username);
gdm_session_worker_set_environment_variable (worker, "USER", worker->priv->username);
gdm_session_worker_set_environment_variable (worker, "USERNAME", worker->priv->username);
gdm_session_worker_set_environment_variable (worker, "HOME", home);
gdm_session_worker_set_environment_variable (worker, "SHELL", shell);