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


15

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

回答:


20

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

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

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

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


シンボリックリンクがそのような問題を引き起こす可能性があることを私は知りませんでした。そのようなデーモンはどのように扱い/var/run/ますか?
ポール

1
サーバーは、ローカルファイルシステムへのアクセスを制限して、システムの危険を回避するように設計されています。これは「リモートユーザーに許可されているもの」と考えることができます。「このプロセスで許可されていること」として、/ var / runへのアクセスを制限する必要はありません(通常、起動時とシャットダウン時)。必要に応じて、提供されるファイルシステムがシンボリックリンクを通過できるようにする方法の例については、ApacheのFollowSymLinksディレクティブを参照してください。
Joe Atzberger、2014年

同じ方法で/ binと/ libを展開することもできます(小さなファイルシステムで役立ちます)?
2018年

システムは/bin/lib初期化時に(つまり、mountコマンドを実行する前に)必要ですか?その場合、この戦略を採用することはできません。
Joe Atzberger、2018年

2
/ etc / fstabにinitを追加することが完了したら、ここで情報を追加します。ジョーが記載された方法を使用する場合mount --bind --verbose /extra-home/username /home/username、行には/etc/fstabなるであろう/extra-home/username /home/username none defaults,bind 0 0
Wilken

9

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

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

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

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


/ media / {hardrive_name} / {your folder}で開始する必要がある単純なフォルダーの場合、debianサーバーでこれを試したところ、動作します。
answerSeeker

2

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

ルートシェル(例sudo -i)で別のユーザーとしてログインしている間に、/home/usernameto のコンテンツをコピーして/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デスクトップを使用していると仮定しています)、正常に動作するはずです。ただし、そうでない場合は、シンボリックリンクを削除して、アーカイブされたホームフォルダーを元の場所に戻すだけです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.