免責事項: これは宿題です。私は解決策を望んでいません。
また、c/c++ 標準ライブラリ以外のライブラリは使用できません。
割り当てられた学期プロジェクト (仮想 FTP サーバーの作成) のこの部分の作業が私に何を求めているのかを理解するために、正しい方向へのプッシュを探しています。
サーバーでは、仮想ファイルシステムを作成できます。仮想ファイルシステムとは、提供されたディレクトリをファイルシステム上の実際のディレクトリにマッピングすることを意味します。たとえば、クライアント ツリーは次のようになります。 /home/user1 は /mnt/x/home/user1 にマップされます。 /www は /var/cache/www にマップされます。ユーザーには、/home/user1 ディレクトリと /www ディレクトリ、およびファイル /home/user_list.txt が表示されます。
私は講師に次の質問をしました。
サポートする必要があるディレクトリ マッピングは
/home/user1 -> /mnt/x/home/user1
、/www -> /var/cache/www
、およびだけですか?/var/cache/www/home/user_list.txt -> /var/ftpclient/user_list.txt
次の返信がありました。
これらのマッピングは単なる設定例です。あなたのソリューションは、同様の方法で何でもマップできるはずです。
私の現在の理解では、FTP サーバーのユーザーに、明示的にマップされた (構成ファイルで指定された) ディレクトリとファイルへのアクセスのみを許可する必要があります。これはおそらく次のようなマッピングを意味し/home -> /home/users
ます (したがって、すべてのユーザーは、FTP を使用するための疑似ルート ディレクトリにいることがわかります。たとえば、ユーザー Bob は/home/bob/
.
また、実際の基盤となるファイル システムで動作する 、 などのls
FTPコマンドをサポートするには、どの API を使用する必要がありますか?cd