コンソールを介してルートとして作成したシンボリックリンクを使用して、proftpd仮想ユーザーにホームパス以外のディレクトリへのアクセスを許可しようとしました。
/var/ftp/users/test
は、test
という名前のユーザーのホームです。/var/ftp/files/documents
はドキュメントを保持するディレクトリであり、/var/ftp/users/test/documents
はそれを指すシンボリックリンクです。
しかし、ユーザーがFTPに接続してシンボリックリンクをたどろうとすると、このエラーが表示されるだけです。
documents: No such file or directory
何が間違っていますか?
シンボリックリンクは、ユーザーと同じように刑務所に閉じ込められます。そうしないと、ユーザーはcd documents
で刑務所から抜け出すことができます。 (いいえ、cd -P symlink-to-dir; cd ..
が間違った場所に放置されるのと同じ理由で、ルートで作成されたシンボリックリンクを特別に扱うことはできません。期待どおりに動作するように見えるのはシェルによって作成された錯覚です。)代わりにバインドマウントを使用してください(mount --bind /var/ftp/files/documents /var/ftp/users/test/documents
)。