14

Я ищу место, где установлена переменная окружения $ HOME. Это после входа в систему, на мой взгляд.

Я использую Linux Debian 2.6.32-5-686.

4 ответа4

17

В Linux переменная окружения HOME устанавливается программой входа в систему:

  • путем login в консоль, telnet и rlogin
  • по sshd для соединений SSH
  • по gdm , kdm или xdm для графических сессий.
5

Программа входа в систему организует его перед вызовом exec в вашей оболочке (включив его в аргументы exec), основываясь на значении в /etc /passwd.

4

Отредактируйте это, запустив: usermod -d /home/whatever_dir whatever_user .

Обратите внимание, что это (очевидно) будет новый домашний каталог. Bash cd к нему при входе в систему, поэтому убедитесь, что он существует и права доступа правильные. Кроме того, не забывайте о .bashrc , .profile , .xinitrc и т.д .; если они не находятся в домашнем каталоге, они не будут прочитаны.

Из usermod:

Usage: usermod [options] LOGIN

Options:
  -c, --comment COMMENT         new value of the GECOS field
  -d, --home HOME_DIR           new home directory for the user account
  -e, --expiredate EXPIRE_DATE  set account expiration date to EXPIRE_DATE
  -f, --inactive INACTIVE       set password inactive after expiration
                                to INACTIVE
  -g, --gid GROUP               force use GROUP as new primary group
  -G, --groups GROUPS           new list of supplementary GROUPS
  -a, --append                  append the user to the supplemental GROUPS
                                mentioned by the -G option without removing
                                him/her from other groups
  -h, --help                    display this help message and exit
  -l, --login NEW_LOGIN         new value of the login name
  -L, --lock                    lock the user account
  -m, --move-home               move contents of the home directory to the
                                new location (use only with -d)
  -o, --non-unique              allow using duplicate (non-unique) UID
  -p, --password PASSWORD       use encrypted password for the new password
  -R, --root CHROOT_DIR         directory to chroot into
  -s, --shell SHELL             new login shell for the user account
  -u, --uid UID                 new UID for the user account
  -U, --unlock                  unlock the user account
2

Если вы пытаетесь изменить свой ДОМ, вы можете сделать

export HOME=/home/... 

либо в вашей оболочке, либо в вашем файле ~/.profile и /или ~/.bashrc (или соответствующей оболочке входа в систему).

(Приведенный выше код будет работать для bash и аналогичных оболочек, которые по умолчанию установлены в Debian; в противном случае вы бы сделали `setenv HOME $ HOME:/extra/path, я думаю, на csh-подобных оболочках в других дистрибутивах.)

редактировать - однако это, вероятно, не способ сделать это. Смотрите другие ответы. Не используйте этот ответ.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .