特定のディレクトリへのFTPアクセスを許可する

特定のディレクトリへのFTPアクセスを許可する

ローカル ネットワーク上のボックスに CentOS をセットアップし、httpd、PHP、Webmin (および UserMin) などをインストールしました。ProFTPd を選択し、FTP、Webmin、Apache のポートを開きました。

これで、ローカル ネットワーク経由で Webmin にアクセスし、デフォルトの Apache テスト ページを表示できるようになりました。作成したユーザーとして sfpt 接続もできます。ただし、FTP 経由で /var/www/ にファイルを書き込むことはできません。

1 人以上のユーザーが関連ディレクトリにアクセスできるようにするには、何をする必要がありますか?

答え1

LDJames の回答 (もうここにはありません) は、ユーザーとグループの問題全体について教えてくれましたが、完全に役立つものではありませんでした。ありがたいことに、Google に協力してもらうには十分でした。問題を解決するために私が実行した手順は次のとおりです。

フォルダは root によって所有されていましたが、これはユーザーを追加するのに適したグループではありませんでした。解決策は、特別なグループを作成することでした。私は発明家なので、そのグループを「www」と名付けました。次に、html フォルダをそのグループに移動します。

<user>私のシステム上のユーザーのユーザー名です

  1. su でルートになる(または各行で sudo を使用する)
  2. groupadd www(グループを作る)
  3. usermod -a -G www <user>(ユーザーをグループに追加する)
  4. /var/www/ に移動します
  5. chgrp www html(フォルダをグループに設定)
  6. chmod g+rwx html(フォルダへのグループアクセスを許可する - 参照http://ss64.com/bash/chmod.html非常に役に立ちました)

結果、ファイルをアップロードできるようになり、必要に応じて他のユーザーにもアップロードしてもらうことも可能になりました。

  1. プロンプトに従って、Apache を www グループとして実行するように設定しました。

これは、環境変数を設定することによって行われます (環境変数の正確な場所は Linux の種類によって異なります)。

他の回答にもかかわらず、これを行う正しい方法は次のとおりです。

export APACHE_RUN_USER=www
export APACHE_RUN_GROUP=www

上記では、www というユーザーも作成していることを前提としていますが、これは私のデスク上の開発ボックスなので、今のところ Apache を root として実行しても問題ありません。

Apache のユーザーとグループの設定については、次の方法で確認しました。Apache と PHP はどのユーザーで実行する必要がありますか? /var/www ファイルにはどのような権限が必要ですか?

関連情報