一日中これをやってやっと見つけたようですが、本番環境に適用する前に確認したかったです。
apache:apache
ユーザーが複数のディレクトリへの書き込みアクセスを許可するようにサーバーを変更しています。私はjeff:jeff
サーバーの唯一のユーザーです。
私のディレクトリ構造は次のとおりです。
/home/jeff/www/ 0755 jeff:jeff
/home/jeff/www/example1.com/ 0755 jeff:jeff
/home/jeff/www/example2.com/ 0755 jeff:jeff
/home/jeff/www/example2.com/uploads/ 0755 apache:apache
問題は次のとおりです。
chmod apache:apache uploads/
書き込みアクセスを許可するために実行しますapache
。
sftpでファイルを編集したいときはいつでもそのファイルに戻り、完了したら元に戻すuploads/
必要があります。chown
jeff:jeff
私の初期の解決策は次のとおりです。
apache
jeff
グループにユーザーを追加するjeff
グループにディレクトリへの書き込み権限を手動で付与することによってuploads/
chmod 775
- ユーザーが新しいファイル+フォルダ+サブフォルダを.requiresディレクトリ
apache
に作成するように強制します。apache:jeff
setgid 2775
uploads/
- ユーザーが=を介して
apache
新しいファイル+フォルダ+サブフォルダを作成するように強制するumask 002
775
システム
私は私が仕事をしっかりしていると確信できる時間は約50%です。
大丈夫だと思いますか?もっと良い方法がありますか?私は何を逃したことがありませんか?
Jimの助けを借りて、これが私が使用した最終的な解決策です。
参考までに。
# usermod --append --groups apache jeff
> Relogin all sessions
# chown -R apache:apache www/example.com/uploads/
# find www/example.com/uploads/ -type d -exec chmod 775 {} \;
# find www/example.com/uploads/ -type f -exec chmod 664 {} \;
# systemctl edit --full php.service
-----------
[Service]
UMask=0002
-----------
# systemctl daemon-reload
# systemctl restart php
WordPressユーザーはwp-config.phpに以下を追加する必要があります。
define('FS_CHMOD_DIR', 0775);
define('FS_CHMOD_FILE', 0664);
答え1
はい、これは一般的な考えでほぼ似ていますが、ユーザーをapache
グループに追加するのではなく、jeff
より安全で便利です(重要な場合は拡張可能)。説明:
apache
グループから取り出してくださいjeff
。代わりにグループ
jeff
に追加してください。apache
まず、これはapache
すべてのグループファイルへの読み取りアクセスをブロックしますjeff
。chown
uploads/
グループ内の誰もがファイルを作成/削除できるディレクトリです。apache:apache
chmod 775
apache
生成されたすべての項目がグループ書き込み可能になるように
apache
ファイル生成を使用します。umask 2
apache
この方法:
chown
A)ファイルを編集する前にファイルを作成する必要はありません。すべてのupload
ファイルはグループに属し、apache
グループ書き込みが可能で、すでにグループに属していますapache
。
B)他のユーザーをapache
グループに簡単に追加したり、アップロードしたファイルを編集したりできます。