web-dev-qa-db-ja.com

Webサーバーが書き込むために使用できるApacheグループを確認するにはどうすればよいですか?

Wordpressを機能させようとしています。現在、このエラーメッセージが表示されています。

Could not create directory. /var/www/html/wp-content/upgrade/theme_name

テーマをアップロードしようとしたとき。これは、/var/www/html/wp-content/upgrade/に設定された権限です

drwxrwxr-x 3 ec2-user Apache 4096 Jun 21 00:30 upgrade

chmod 777 upgradeはエラーを解消します。しかし、それはベストプラクティスとは見なされていません。しかし、これもうまくいくと思います...なぜでしょうか?

上記のアクセス許可には、Webサーバーが含まれていない可能性があります。 Webサーバーに書き込みを許可するには、どのグループを使用すればよいですか?

(私のセットアップは、Amazon EC2、Amazon Linux AMI、httpd付きです)

13
user1995

Amazon EC2については何も知りませんが、次のことができるはずです。

  1. 次のようなコマンドを使用して、Apacheを実行しているユーザーの名前を取得します。

    _ps aux | grep Apache # The username should be in the first column.
    _
  2. groups(1)コマンドを使用して、このユーザーが属しているグループを取得します。

    _groups [USERNAME]
    _
16
rahmu

Apacheグループ名を確認するには、次のコマンドラインメソッドを使用してみてください。

WWW_GROUP=`ps axo user,group,comm | egrep '(Apache|httpd)' | grep -v ^root | cut -d\  -f 2| uniq`
echo Apache group is: $WWW_GROUP

ユーザーを取得するには、次を確認します。 コマンドラインからApacheユーザーを判別する方法?

2
kenorb

chmod 777にアップグレードすると、エラーが発生しなくなります。

まあ、その場合はls -ld /var/www/html/wp-content/upgrade/theme_nameは、作成者の資格情報を明らかにする必要があります。これは、正確なアクセス許可に使用できます。

そして、1777 (はどうかと言うと /tmp)少なくとも、ファイルの所有者だけがリンクを解除できることが保証されているためです。

1
poige