Como mudar meu diretório pessoal?

5

Eu tenho um diretório / home / user / atual para ~ mas eu quero mudá-lo para / user / home /

/ user / home já existe.

A opção de usar usermod não funcionará porque não tenho acesso ao sistema como root ou como outro usuário.

Eu estou pedindo uma solução ao longo das linhas de modificar algum arquivo .bashrc e alterar algumas variáveis de ambiente ou similares. Eu faço o login via ssh.

Estou executando o Ubuntu 14.04.

Obrigado antecipadamente

Soluções como as abaixo não são aplicáveis ao meu caso:

Como mudar meu próprio diretório pessoal?

Como alterar meu diretório pessoal padrão

link

EDITAR

Eu pensei em dar mais algumas informações aqui do que responder aos comentários.

Atualmente, a estrutura de pastas é muito mais estranha do que o meu exemplo acima, mas o jist dela é o mesmo. Ou seja, atualmente, quando eu faço:

user@local:~$ ssh user@host

Eu acabo em:

user@host:~$ 
user@host:~$ pwd
/path/of/current/home/

Então, quando eu uso coisas como pip com a tag --user instalará as coisas localmente.

Como há algumas limitações de memória, bem como ssh problemas ao gravar nesse local (depois de algum tempo eu não consigo mais escrever), gostaria de ter o seguinte comportamento:

user@local:~$ ssh user@host
user@host:~$ 
user@host:~$ pwd
/path/of/new/home/

/path/of/new/home/ já existe e não tem as limitações definidas acima.

    
por evan54 21.12.2014 / 00:25

1 resposta

3

Bem, você pode adicionar essa linha ao seu ~/.profile 1 :

HOME=/user/home/

No entanto, isso realmente não é uma boa ideia. Problemas que isso causaria incluem (mas provavelmente não estão limitados a):

  1. Isso só funcionará se /home/user pertencer ao seu usuário. Se não for, você nem poderá fazer login.

  2. Isso funcionará apenas para seu usuário. Para todos os outros, seu diretório pessoal será o que estiver armazenado em /etc/passwd . Isso significa que, por exemplo, cd ~user falhará. Em outras palavras, se eu fizer login como bob e bob tiver a linha HOME=/home/bob/foo em ~/.profile , então bob achará que seu diretório pessoal é /home/bob/foo , mas ninguém mais sabe disso:

    $ whoami
    bob
    $ echo $HOME
    /home/bob/foo
    $ cd ## this moves to your $HOME
    $ pwd
    /home/bob/foo
    

    Até aí tudo bem. Mas:

    $ whoami
    terdon
    $ cd ~bob
    $ pwd
    /home/bob
    
  3. Isso irá enlouquecer seu administrador de sistema. Você não quer irritar o seu administrador de sistema, pois você é crocante e tem um bom gosto de ketchup.

Em qualquer caso, raramente é uma boa ideia mexer com variáveis como $HOME , mas isso pode ter consequências indesejadas. Em vez disso, uma solução muito mais limpa seria garantir que todas as novas sessões de shell sejam iniciadas no diretório de destino. Basta adicionar esta linha ao seu ~..bashrc :

cd /user/home/

Agora, cada vez que você registra 2 ou abre um terminal, você se encontra em /user/home .

1 Ou ~/.bash_profile se existir.

2 Efetue login em sistemas baseados em Debian, como o Ubuntu, de qualquer forma. Para outras distribuições / sistemas operacionais, talvez seja necessário adicioná-lo também a ~/.profile . Consulte aqui .

    
por terdon 26.06.2015 / 15:43