複数の FTP ユーザーが共通のホームディレクトリを共有する

複数の FTP ユーザーが共通のホームディレクトリを共有する

前述のように、同じホーム ディレクトリを持つ複数の FTP ユーザーを作成できる設定をしたいと考えています。

これまで私が試してきたことは、

FTP ユーザーのディレクトリをホームとして指定して新しいユーザーを作成しましたが、新しいユーザーはそのディレクトリの所有者ではないため、接続が拒否されているようです。

また、元の ftp ディレクトリのソフト リンクを作成し、そのリンクを個々のユーザーのホーム ディレクトリのホームとしてマップするなど、ソフト リンクを使用してこれを管理しようとしました。

すべての FTP ユーザーに対してホーム ディレクトリを個別に作成すれば、これが機能することはわかっています。現在、FTP ユーザーと Apache ユーザーは両方とも同じなので、アップロードするファイルは Apache によってデフォルトで実行権限が付与されますが、ユーザーを分離し、Apache にマップされていない別のユーザーを使用してファイルをアップロードすると、Apache はそのファイルを実行できるようになりますか?

答え1

「Apache はそのファイルを実行できるでしょうか」とはどういう意味かわかりません。FTP でアップロードされたファイルを本当に実行 (つまりプログラムとして実行) したいのですか? それとも、Apache にそれらのファイルをデータとしてクライアントに提供させたいだけですか? Web クライアントが参照できるディレクトリは Apache 構成ファイルによって決まります。任意のディレクトリを提供するように設定できます。

通常、新しいファイルは、すべてのユーザーに読み取りアクセスを許可し、所有者にのみ書き込みアクセスを許可して作成されます。つまり、-rwxr-xr-x8 進数で 755 (-rw-r--r--実行可能ファイルでない場合は 8 進数で 644) です。新しいファイルに与えられる権限は、そのファイルを作成したプロセスの umask によって制御されます。つまり、ftp ユーザーによってアップロードされたファイルは、そのように構成されている場合は、Apache で使用できる可能性があります。

複数のユーザーがホーム ディレクトリを共有できるようにするには、そのディレクトリがすべてのユーザーによって書き込み可能である必要があるため、グローバル書き込み権限またはグループ書き込み権限が必要であり、そのディレクトリに書き込む必要があるすべてのユーザーがそのディレクトリを所有するグループに属している必要があります。

しかし、それはおそらく正しい方法ではありません。おそらく、別々のユーザーを使用することで、必要な結果が得られるでしょう。

関連情報