ローカル ネットワーク上のボックスに CentOS をセットアップし、httpd、PHP、Webmin (および UserMin) などをインストールしました。ProFTPd を選択し、FTP、Webmin、Apache のポートを開きました。
これで、ローカル ネットワーク経由で Webmin にアクセスし、デフォルトの Apache テスト ページを表示できるようになりました。作成したユーザーとして sfpt 接続もできます。ただし、FTP 経由で /var/www/ にファイルを書き込むことはできません。
1 人以上のユーザーが関連ディレクトリにアクセスできるようにするには、何をする必要がありますか?
答え1
LDJames の回答 (もうここにはありません) は、ユーザーとグループの問題全体について教えてくれましたが、完全に役立つものではありませんでした。ありがたいことに、Google に協力してもらうには十分でした。問題を解決するために私が実行した手順は次のとおりです。
フォルダは root によって所有されていましたが、これはユーザーを追加するのに適したグループではありませんでした。解決策は、特別なグループを作成することでした。私は発明家なので、そのグループを「www」と名付けました。次に、html フォルダをそのグループに移動します。
<user>
私のシステム上のユーザーのユーザー名です
- su でルートになる(または各行で sudo を使用する)
groupadd www
(グループを作る)usermod -a -G www <user>
(ユーザーをグループに追加する)- /var/www/ に移動します
chgrp www html
(フォルダをグループに設定)chmod g+rwx html
(フォルダへのグループアクセスを許可する - 参照http://ss64.com/bash/chmod.html非常に役に立ちました)
結果、ファイルをアップロードできるようになり、必要に応じて他のユーザーにもアップロードしてもらうことも可能になりました。
- プロンプトに従って、Apache を www グループとして実行するように設定しました。
これは、環境変数を設定することによって行われます (環境変数の正確な場所は Linux の種類によって異なります)。
他の回答にもかかわらず、これを行う正しい方法は次のとおりです。
export APACHE_RUN_USER=www
export APACHE_RUN_GROUP=www
上記では、www というユーザーも作成していることを前提としていますが、これは私のデスク上の開発ボックスなので、今のところ Apache を root として実行しても問題ありません。
Apache のユーザーとグループの設定については、次の方法で確認しました。Apache と PHP はどのユーザーで実行する必要がありますか? /var/www ファイルにはどのような権限が必要ですか?