Onde a variável de ambiente $ HOME é definida?

14

Estou procurando o local em que a variável de ambiente $ HOME está definida. É após o login, na minha opinião.

Estou usando o Linux debian 2.6.32-5-686.

    
por webnoon 17.04.2011 / 13:56

4 respostas

2

Se você está tentando modificar sua HOME, você pode fazer

export HOME=/home/... 

no seu shell, ou no seu arquivo ~ / .profile e / ou ~ / .bashrc (ou shell de login apropriado).

(O código acima funcionará para shells bash e similares, que são padrão no Debian; você faria de outra forma 'setenv HOME $ HOME: / extra / path eu acho em shells como csh em outras distros.)

edit - No entanto, esta provavelmente não é a maneira de fazer isso. Veja outras respostas. Não use esta resposta.

    
por 17.04.2011 / 13:58
17

No Linux, a variável de ambiente HOME é definida pelo programa de login:

  • por login no console, telnet e rlogin sessões
  • por sshd para conexões SSH
  • por gdm , kdm ou xdm para sessões gráficas.
por 17.04.2011 / 14:41
5

O programa de login o organiza antes de chamar exec em seu shell (incluindo-o nos argumentos para exec), com base no valor em / etc / passwd.

    
por 17.04.2011 / 13:59
4

Edite isso executando: usermod -d /home/whatever_dir whatever_user .

Por favor note que este (obviamente) será o novo diretório home. O Bash irá cd no login, portanto, verifique se ele existe e se as permissões estão corretas. Além disso, não esqueça de .bashrc , .profile , .xinitrc , etc; se eles não estiverem no diretório inicial, eles não serão lidos.

De 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
    
por 29.12.2013 / 09:46