web-dev-qa-db-ja.com

ホームディレクトリを変更する方法は?

〜の現在の/ home/user /ディレクトリがありますが、それを/ user/home /に変更したい

/ user/homeは既に存在します。

ルートまたは別のユーザーとしてシステムにアクセスできないため、usermodを使用するオプションは機能しません。

いくつかの.bashrcファイルを変更し、いくつかの環境変数または類似のsmthを変更するという方針に沿った解決策を求めています。 ssh経由でログインします。

Ubuntu 14.04を実行しています。

前もって感謝します

残念ながら、以下のようなソリューションは私の場合には適用できません:

自分のホームディレクトリを変更する方法

デフォルトのホームディレクトリを変更する方法

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

編集

コメントに返信するのではなく、ここでさらに情報を提供したいと思いました。

現在、フォルダ構造は上記の例よりもはるかに奇妙ですが、その本質は同じです。つまり、現在私が行うこと:

user@local:~$ ssh user@Host

私は最終的に:

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

pip with --user tag のようなものを使用すると、ローカルにインストールされます。

その場所への書き込みにはsshの問題と同様にいくつかのメモリ制限があるため(しばらくすると書き込みができなくなります)、次のように動作させたいと思います。

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

/path/of/new/home/はすでに存在し、上記の制限はありません。

5
evan54

さて、あなたは~/.profileにこの行を追加することができます1

HOME=/user/home/

しかし、それは本当に良い考えではありません。発生する問題には次のものが含まれます(ただし、おそらくこれらに限定されません)

  1. ユーザーが/home/userを所有している場合にのみ機能します。そうでない場合は、ログインすることさえできません。

  2. これはユーザーに対してのみ機能します。それ以外の場合、ホームディレクトリは/etc/passwdに保存されているものになります。これは、たとえば、cd ~userが失敗することを意味します。つまり、bobとしてログインし、bobHOME=/home/bob/foo~/.profileという行がある場合、bobは自分のホームディレクトリが/home/bob/fooしかし、誰もそれを知らない:

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

    ここまでは順調ですね。しかし:

    $ whoami
    terdon
    $ cd ~bob
    $ pwd
    /home/bob
    
  3. これにより、システム管理者が非常識になります。あなたは歯ごたえがあり、ケチャップの味が良いので、システム管理者を怒らせたくありません。

いずれにせよ、$HOMEのような変数をいじることはめったに良い考えではありません。多くの場合、意図しない結果になる可能性があります。代わりに、はるかにクリーンなソリューションは、すべての新しいシェルセッションがターゲットディレクトリで開始されるようにすることです。次の行を~..bashrcに追加するだけです:

cd /user/home/

今、あなたが記録するたびに2 端末を開いたり開いたりすると、/user/homeにいることに気付くでしょう。


1または、~/.bash_profileが存在する場合。

2 とにかく、UbuntuのようなDebianベースのシステムにログインしてください。他のディストリビューション/ OSの場合は、~/.profileにも追加する必要があります。 here を参照してください。

3
terdon