〜の現在の/ 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/
はすでに存在し、上記の制限はありません。
さて、あなたは~/.profile
にこの行を追加することができます1:
HOME=/user/home/
しかし、それは本当に良い考えではありません。発生する問題には次のものが含まれます(ただし、おそらくこれらに限定されません)
ユーザーが/home/user
を所有している場合にのみ機能します。そうでない場合は、ログインすることさえできません。
これはユーザーに対してのみ機能します。それ以外の場合、ホームディレクトリは/etc/passwd
に保存されているものになります。これは、たとえば、cd ~user
が失敗することを意味します。つまり、bob
としてログインし、bob
にHOME=/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
これにより、システム管理者が非常識になります。あなたは歯ごたえがあり、ケチャップの味が良いので、システム管理者を怒らせたくありません。
いずれにせよ、$HOME
のような変数をいじることはめったに良い考えではありません。多くの場合、意図しない結果になる可能性があります。代わりに、はるかにクリーンなソリューションは、すべての新しいシェルセッションがターゲットディレクトリで開始されるようにすることです。次の行を~..bashrc
に追加するだけです:
cd /user/home/
今、あなたが記録するたびに2 端末を開いたり開いたりすると、/user/home
にいることに気付くでしょう。
1または、~/.bash_profile
が存在する場合。
2 とにかく、UbuntuのようなDebianベースのシステムにログインしてください。他のディストリビューション/ OSの場合は、~/.profile
にも追加する必要があります。 here を参照してください。