web-dev-qa-db-fra.com

Comment changer mon répertoire personnel?

J'ai un répertoire/home/user/actuel pour ~ mais je veux le changer pour qu'il soit sur/user/home /

/ utilisateur/home existe déjà.

L'option d'utiliser usermod ne fonctionnera pas car je n'ai pas accès au système en tant qu'utilisateur root ou utilisateur.

Je demande une solution dans le sens de modifier un fichier .bashrc et de changer une variable d’environnement ou similaire. Je me connecte via ssh.

J'utilise Ubuntu 14.04.

Merci d'avance

Des solutions comme celles ci-dessous ne sont malheureusement pas applicables à mon cas:

Comment changer mon propre répertoire personnel?

Comment changer mon répertoire personnel par défaut

https://stackoverflow.com/questions/20797819/command-to-change-the-default-home-directory-of-a-user

EDIT

Je pensais donner plus d’informations ici plutôt que de répondre aux commentaires.

Actuellement, la structure des dossiers est beaucoup plus étrange que mon exemple ci-dessus, mais sa structure est la même. C'est à dire quand je fais:

user@local:~$ ssh user@Host

Je me retrouve dans:

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

ainsi, lorsque j'utilise des éléments tels que pip avec la balise --user] , les choses seront installées localement.

Comme il existe certaines limitations de mémoire ainsi que ssh problèmes liés à l'écriture dans cet emplacement (je ne peux plus écrire après un certain temps), j'aimerais avoir le comportement suivant:

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

/path/of/new/home/ existe déjà et n'a pas les limitations définies ci-dessus.

5
evan54

Eh bien, vous pouvez simplement ajouter cette ligne à votre ~/.profile1:

HOME=/user/home/

Cependant, ce n'est vraiment pas une bonne idée. Les problèmes que cela causerait incluent (mais ne sont probablement pas limités à):

  1. Cela ne fonctionnera que si /home/user appartient à votre utilisateur. Si ce n'est pas le cas, vous ne pourrez même pas vous connecter.

  2. Cela fonctionnera pour votre utilisateur uniquement. Pour tous les autres, votre répertoire personnel sera celui qui sera stocké dans /etc/passwd. Cela signifie que, par exemple, cd ~user échouera. En d'autres termes, si je me connecte en tant que bob et bob a la ligne HOME=/home/bob/foo dans ~/.profile, alors bob pense que son répertoire personnel est /home/bob/foo mais personne d'autre ne le sait:

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

    Jusqu'ici tout va bien. Mais:

    $ whoami
    terdon
    $ cd ~bob
    $ pwd
    /home/bob
    
  3. Cela rendra votre administrateur système insensé. Vous ne voulez pas mettre en colère votre administrateur système car vous êtes croustillant et savourez le ketchup.

Dans tous les cas, il est rarement judicieux de jouer avec des variables comme $HOME, cela peut souvent avoir des conséquences inattendues. Au lieu de cela, une solution beaucoup plus propre serait de s'assurer que chaque nouvelle session Shell commence dans le répertoire cible. Ajoutez simplement cette ligne à votre ~..bashrc:

cd /user/home/

Maintenant, chaque fois que vous vous connectez2 Dans ou ouvrez un terminal, vous vous retrouverez dans /user/home.


1Ou ~/.bash_profile s'il existe.

2 Connectez-vous aux systèmes basés sur Debian comme Ubuntu, de toute façon. Pour les autres distributions/systèmes d'exploitation, vous devrez peut-être également l'ajouter à ~/.profile.Voir ici .

3
terdon