O que acontecerá se eu exportar minha variável $ HOME no login?

2

Este é um acompanhamento desta pergunta:

link

O resumo é:

  • executando o ubuntu 14.04
  • ssh'ing nele ssh -X user@host acaba na sessão bash
  • Desejo alterar meu diretório inicial do /current/home/ para o /new/home/ que já existe

Pensei em adicionar a seguinte linha para ser executada no login:

export HOME=/new/home

Os arquivos que existem no /current/home/ que achei que podem ser relevantes são:

  • .login
  • .profile

Quando eu adiciono esse comando no arquivo .profile , ele funciona.

Idealmente, gostaria que estivesse no arquivo que é executado primeiro, para que tudo seja executado após ter a variável HOME correta definida.

Eu não tenho acesso root ou acesso através de outro usuário na máquina remota.

    
por evan54 21.12.2014 / 06:24

1 resposta

3

Eu tive exatamente o mesmo problema antes. No meu caso, nós tivemos vários usuários que (por razões políticas) tiveram que compartilhar a mesma conta de usuário que fica confusa se pessoas diferentes querem preferências diferentes ou esperam seu próprio histórico de comandos.

A solução foi criar um diretório pessoal próprio para cada usuário real e alterar o HOME no momento do login.

Para fazer isso, usei chaves ssh, coloquei a chave pública em chaves .ssh / authorized e usei um comando forçado para iniciar um script de shell pequeno que definiu a nova home e inicie um novo shell ou execute SSH_ORIGINAL_COMMAND se especificado. / p>

Em .ssh / chave autorizada, escreva algo como

command="/home/me/bin/startupscript" ssh-rsa ...

e no startupscript escreva algo como

env -i HOME=/new/home ${SSH_ORIGINAL_COMMAND:-bash -l}

apoiar o SSH_ORIGINAL_COMMAND é importante para coisas como o scp, que agora também usará a nova casa.

    
por 21.12.2014 / 09:22