ユーザーは所有するフォルダーへの書き込み権限を持っていませんか?

ユーザーは所有するフォルダーへの書き込み権限を持っていませんか?

私は に取り組んでいますDebian10 with php8 fpm + apache2。グループ を持つ新しいユーザーを作成しusername:username、このユーザーのホームディレクトリを に設定しました。

/home/username/www

もちろん、私はchmod -Rすべてのフォルダとファイルを持っていますusername:username。ファイルがwww-dataだった頃は/var/html

つまり、キャッシュ フォルダーを書き込むための小さなスクリプトがあるのですが、フォルダーを username:username に chmod すると機能しません。フォルダーを www-data に chmod した場合にのみ機能しますか?

キャッシュフォルダをchown 755にすると、所有者www-datausername

usernameのような書き込み権限を許可することは可能ですかwww-data?

PS: ユーザー名は実際のユーザー名の例です

答え1

可能セキュリティ上の理由から読み取り専用アクセスと、必要な場合にのみ書き込みアクセスを許可しusernameながら、制御できるようにするアプローチ:www-data

  • username所有者およびwww-dataグループとして設定

    chown -R username:www-data /home/username/www
    
  • 所有者にフルアクセス (読み取り/書き込み/実行: 7) を付与し、グループに読み取り専用アクセス (読み取り/実行: 5) を付与します。Otherこのグループにはアクセス権がありません (0)。

    chmod -R 750 /home/username/www
    
  • www-data必要な場所に書き込みアクセス権を付与します。

    chmod -R 770 /home/username/www/path/writable/by/webserver
    

Web サーバーによって作成されたファイルは、Web サーバー自体 ( ) によって完全に所有されますwww-data:www-dataが、ディレクトリ所有者 ( username) は引き続きファイルを移動できます。

答え2

デフォルトでは、PHP-FPM をインストールすると、ユーザーとして実行される単一のプールがインストールされますwww-data。 を適切なユーザーに変更するとusergroupスクリプト/etc/php/8.0/fpm/pool.d/www.confはユーザーとして実行され、www-data書き込み権限は不要になります。

デフォルトでは、設定には次の 2 行が含まれます。

user = www-data
group = www-data

これらの行を次の行に置き換えます。

user = username
group = username

FPMデーモンを再起動します

service php8.0-fpm restart

関連情報