web-dev-qa-db-ja.com

シンボリックリンクを使用して、ftpユーザーにルート外のディレクトリへのアクセスを許可する

コンソールを介してルートとして作成したシンボリックリンクを使用して、proftpd仮想ユーザーにホームパス以外のディレクトリへのアクセスを許可しようとしました。

/var/ftp/users/testは、testという名前のユーザーのホームです。
/var/ftp/files/documentsはドキュメントを保持するディレクトリであり、/var/ftp/users/test/documentsはそれを指すシンボリックリンクです。

しかし、ユーザーがFTPに接続してシンボリックリンクをたどろうとすると、このエラーが表示されるだけです。

documents: No such file or directory

何が間違っていますか?

8

シンボリックリンクは、ユーザーと同じように刑務所に閉じ込められます。そうしないと、ユーザーはcd documentsで刑務所から抜け出すことができます。 (いいえ、cd -P symlink-to-dir; cd ..が間違った場所に放置されるのと同じ理由で、ルートで作成されたシンボリックリンクを特別に扱うことはできません。期待どおりに動作するように見えるのはシェルによって作成された錯覚です。)代わりにバインドマウントを使用してください(mount --bind /var/ftp/files/documents /var/ftp/users/test/documents)。

21
geekosaur