fix: /etc/msmtprc の権限を0600から0644に修正 (v8.5.6-g)
Helm Chart Release / release-chart (push) Successful in 5s

v8.5.6-f でSMTPパスワードファイルの権限は修正したが、
起動スクリプトが chmod 600 していた /etc/msmtprc 自体も
rootのみ読み取り可のままで、PHP-FPMワーカー(www-data等)から
読めず 'msmtp: account default not found' (exit:78) で失敗していた。

chmod 644 に変更。msmtprc には実パスワードは含まれない
(passwordeval経由で別ファイルから取得する設計)ため実害なし。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-20 07:56:44 +09:00
co-authored by Claude Fable 5
parent ffb760b913
commit 4b2dece19b
4 changed files with 58 additions and 2 deletions
+46
View File
@@ -0,0 +1,46 @@
# Changelog - Version 8.5.6-g
## 修正
### /etc/msmtprc をPHP-FPMワーカーから読めない問題を修正
v8.5.6-f で `/etc/smtp-secrets/password`(SMTPパスワード)の権限を修正しましたが、
`/etc/msmtprc` 自体にも同様の問題が残っており、以下のエラーでメール送信が失敗していました。
```
ignoring system configuration file /etc/msmtprc: Permission denied
ignoring user configuration file /home/www-data/.msmtprc: No such file or directory
falling back to default account
msmtp: account default not found: no configuration file available
exit:78
```
**原因**: 起動スクリプト(rootで実行)が `/etc/msmtprc` を作成した後、`chmod 600` していたため、
PHP-FPMワーカー(`www-data` 等の非root)から読めませんでした。
**対応**: `templates/deployment.yaml``chmod 600 /etc/msmtprc``chmod 644` に変更しました。
`msmtprc` には実パスワードは含まれず(`passwordeval` で別ファイルから取得する設計)、
ホスト名・ポート・ユーザー名などの設定のみのため、読み取り権限を広げても実害はありません。
## アップグレード手順
```bash
helm repo update
helm upgrade <リリース名> cafepieters/phpfpm --version 8.5.6-g -f values.yaml
```
Pod再起動後、SMTP経由のメール送信が正常に動作するようになります。
### 動作確認
```bash
kubectl exec -n <namespace> <pod> -c php-fpm -- su -s /bin/sh www-data -c \
'printf "To: test@example.com\r\nFrom: noreply@example.com\r\nSubject: test\r\nMIME-Version: 1.0\r\nContent-Type: text/plain; charset=UTF-8\r\n\r\nbody\r\n" | /usr/bin/msmtp -t --debug; echo "exit:$?"'
```
`exit:0` で成功です。
---
**リリース日**: 2026-07-19
**担当**: プロサーバーエンジニア(Claude)
+6
View File
@@ -22,6 +22,12 @@ Raspberry Pi などのベアメタルで稼働することを想定した、Kube
## チャート改修履歴 ## チャート改修履歴
### /etc/msmtprc の権限を0600→0644に修正(2026-07-19, v8.5.6-g
v8.5.6-f のフォローアップ。`/etc/smtp-secrets/password` の権限修正だけでは不十分で、起動スクリプトが `cp` 後に `chmod 600` していた `/etc/msmtprc` 自体もrootのみ読み取り可のままだった(msmtp: account default not found, exit:78)。`chmod 644` に変更。msmtprcには平文パスワードは含まれない(passwordeval経由で別ファイル参照)ため実害なし。
**対象ファイル**: `templates/deployment.yaml`, `Chart.yaml`, `CHANGELOG-8.5.6-g.md`
### SMTPパスワードSecretの権限を0600→0644に修正(2026-07-19, v8.5.6-f ### SMTPパスワードSecretの権限を0600→0644に修正(2026-07-19, v8.5.6-f
`smtp-secrets` ボリュームの `mode: 0600` が原因で、rootではなく `www-data`(PHP-FPMワーカー)として動く msmtp が `/etc/smtp-secrets/password` を読めず、SMTP認証に失敗する不具合を修正。`0644` に変更(Pod内にしか存在しないファイルのため許容範囲)。 `smtp-secrets` ボリュームの `mode: 0600` が原因で、rootではなく `www-data`(PHP-FPMワーカー)として動く msmtp が `/etc/smtp-secrets/password` を読めず、SMTP認証に失敗する不具合を修正。`0644` に変更(Pod内にしか存在しないファイルのため許容範囲)。
+1 -1
View File
@@ -2,6 +2,6 @@ apiVersion: v2
name: phpfpm name: phpfpm
description: Nginx + PHP-FPM Helm Chart with external DB and optional Selenium support description: Nginx + PHP-FPM Helm Chart with external DB and optional Selenium support
type: application type: application
version: 8.5.6-f version: 8.5.6-g
appVersion: "8.5.6" appVersion: "8.5.6"
icon: https://upload.wikimedia.org/wikipedia/commons/thumb/2/27/PHP-logo.svg/330px-PHP-logo.svg.png icon: https://upload.wikimedia.org/wikipedia/commons/thumb/2/27/PHP-logo.svg/330px-PHP-logo.svg.png
+5 -1
View File
@@ -179,8 +179,12 @@ spec:
echo "Configuring SMTP for mail sending..." echo "Configuring SMTP for mail sending..."
# msmtprc設定ファイルをコピー # msmtprc設定ファイルをコピー
# msmtpはPHP-FPMワーカー(www-data等の非root)から実行されるため、
# rootが作成するこのファイルも読み取り可にする必要がある
# (実パスワードはpasswordeval経由で別ファイルから取得するため、
# msmtprc自体に平文パスワードは含まれない)
cp /etc/smtp-config/msmtprc /etc/msmtprc cp /etc/smtp-config/msmtprc /etc/msmtprc
chmod 600 /etc/msmtprc chmod 644 /etc/msmtprc
# PHP設定をphp.ini.d/に作成 # PHP設定をphp.ini.d/に作成
cat > /usr/local/etc/php/conf.d/99-smtp.ini << 'PHP_SMTP_EOF' cat > /usr/local/etc/php/conf.d/99-smtp.ini << 'PHP_SMTP_EOF'