chrootの内部からchrootの外部ディレクトリにアクセスするには?

chrootの内部からchrootの外部ディレクトリにアクセスするには?

自分のホームディレクトリにルートを移動したユーザーがいますが、その人も管理できることを願っています/var/www。だから私は次のことをしました。

root@server:/home/username# ln -s /var/www www
root@server:/home/username# cd www
root@server:/home/username/www# chown username:username *

ただし/www、FileZillaで開こうとすると、「該当するファイルやディレクトリはありません」というメッセージが返されます。リンクされたディレクトリは表示できますが、アクセスできません。私は何が間違っていましたか?

答え1

シンボリックリンクは基本的に他のファイルへのポインタにすぎず、そのファイルがあるファイルを見つけるため、chroot以外のエントリを指すことはできません。名前/var/www、chrootには存在しません)。一方、ハードリンクは inode へのポインタです。したがって、これを行うには、ハードリンクを省略して使用する必要があります-s。しかし、いくつかの.理由..(主にこれらのファイルシステム方向性非循環グラフ)。

おそらく最良の方法はバインドマウントを使用することです。この試み:

mount --bind /var/www /home/username/www

関連情報