web-dev-qa-db-ja.com

ホームフォルダを別のドライブからシンボリックリンクするにはどうすればよいですか?

より具体的には、ホームアカウントのユーザーフォルダーに、より多くのスペースを持つ別のディスクを持たせたいが、ssdには他の小さなアカウントを保持したい。ユーザーフォルダーを別のディスクにコピーできましたが、ssdのホームフォルダーにリンクする必要があります。通常のブートからアクセスできるようにします。一番いいのは、答えが欲しいだけです。/home/usernameから/ extra-home/usernameへのリンクを作成し、ユーザーフォルダーを読み込むときにシステムによって認識されるリンクを作成するにはどうすればよいですか?

11
sbergeron

許可は同じにする必要があることに注意してください。シンボリックリンクに加えて、最近のディストリビューションとファイルシステムでは、rootとしてbind-mountを使用することもできます。

mkdir /home/username mount --bind --verbose /extra-home/username /home/username

これは、シンボリックリンク(Apache、ftpdなど)のパスを回避するように設定されているデーモンを介して、/ homeディレクトリからサブディレクトリへのアクセスを許可するのに役立ちます。

もちろん、再起動時にバインドするには、覚えておく必要があります(またはinitスクリプト)。

17
Joe Atzberger

this スーパーユーザーに関する質問によると、これは可能です。

次を使用してシンボリックリンクを作成できます。

ln -s /extra-home/username /home/username

何らかの理由で機能しない場合は、シンボリックリンクを削除し、ディレクトリを元に戻し、コンピューターを再起動します。

9

私はこれを試してみます:

ルートシェル(例:Sudo -i)で別のユーザーとしてログインしながら、/home/usernameの内容を/extra-home/usernameにコピーし、新しい場所がusernameによって所有されていることを確認します。

# cp -p /home/username /extra-home/
# chown username:username /extra-home/username

元の/home/username/ディレクトリを安全な場所に移動します。

# mv /home/username /root/

シンボリックリンクを作成します。

# ln -s /extra-home/username /home/username

別のターミナルウィンドウを開き、suを実行して、期待どおりに機能していることを確認します。

$ Sudo su username

少なくとも端末からすべてが正常に見える場合(/home/username/の内容が期待どおりに表示されます)、ログアウトしてからログインし直します(Ubuntuデスクトップを使用していると想定しています)should正常に動作しています。ただし、そうでない場合は、シンボリックリンクを削除して、アーカイブされたホームフォルダーを元の場所に戻すだけです。

2
Paul