postfixadmin更新现在无法使用admin帐户登录



我最近发现postfixadmin需要更新数据库和所有内容,所以我尝试了这样做,但我无法登录,也无法创建超级用户管理员。

这些是我的日志。

/var/log/nginx/postfixadmin_error.log

2022/02/25 16:31:08 [error] 2094#2094: *5 FastCGI sent in stderr: "PHP message: Failed to read password from /usr/bin/doveadm pw -r 5 ... stderr: doveconf: Fatal: Error in configuration file /etc/dovecot/conf.d/10-ssl.conf line 13: ssl_key: Can't open file /etc/letsencrypt/live/mail.pihosting.ca/privkey.pem: Permission denied
, password:  PHP message: Error while trying to call pacrypt()PHP message: Exception: /usr/bin/doveadm pw -r 5 failed, see error log for details in /usr/share/postfixadmin/functions.inc.php:1059
Stack trace:
#0 /usr/share/postfixadmin/functions.inc.php(1274): _pacrypt_dovecot()
#1 /usr/share/postfixadmin/model/Login.php(36): pacrypt()
#2 /usr/share/postfixadmin/public/login.php(63): Login->login()
#3 {main}PHP message: PostfixAdmin admin login failed (username: admin@pihosting.ca, ip_address: 209.15.158.30)" while reading response header from upstream, client: 209.15.158.30, server: pfa.pihosting.ca, request: "POST /login.php HTTP/2.0", upstream: "fastcgi://unix:/run/php/php7.4-fpm.sock:", host: "pfa.pihosting.ca", referrer: "https://pfa.pihosting.ca/login.php"

我认为这是一个简单的权限问题,所以我检查了有问题的文件的权限。

root@mail:~# ls -l /etc/letsencrypt/live/mail.pihosting.ca/privkey.pem
lrwxrwxrwx 1 root root 44 Jan 21 00:01 /etc/letsencrypt/live/mail.pihosting.ca/privkey.pem -> ../../archive/mail.pihosting.ca/privkey6.pem

每个人都很酷(我知道我不应该,但我不记得为什么我要这样设置。(

很奇怪,所以我想我应该探索一下这些小组。

root@mail:~# groups dovecot
dovecot : dovecot mail certbot

然后我检查了www数据

root@mail:~# groups www-data
www-data : www-data certbot

我再次尝试设置它,并更改了我的setup_password。它更新了登录的文件,并将我带到了login.php。我尝试了loggin in ut,当我知道它的正确性时,会说电子邮件或密码错误。

我看到的唯一警告是这个

Warnings
⚠ Database - PostgreSQL (pdo_pgsql) extension not found
⚠ Database support - SQLite (pdo_sqlite) extension not found

其他的都有绿色的格子。

我不是专家,所以我还在学习。

有人能给我指正确的方向吗?

如果您需要尚未包含的日志,请告诉我。

一切都没有改变,我使用的roundcube邮件仍然允许我登录,并且按预期工作。

检查此项以获取更多日志和权限。

https://pastebin.com/35L3Ph1s

我们在RHEL9.1上安装了一个非常相似的postfixadmin,安装了最新版本的dovect/postfix/php-fpm/php/postfixadmin等(所以也可以考虑Centos/Fedora等的后期版本(。

我们在postfixadmin:的错误日志中得到了这条消息

2023/02/10 10:16:13[error]20541#20541:*1313在stderr中发送的FastCGI:";PHP消息:无法从/usr/bin/doveadm-pw-r12读取密码。。。stderr:doveconf:致命:配置文件/etc/dovect/conf.d/10-ssl.conf第15行出错:ssl_key:无法打开文件/etc/letsencrypt/live/foo.com/privakey.pem:权限被拒绝30,密码:;PHP消息:尝试调用pacrypt((时出错;PHP消息:异常:/usr/bin/doveadm-pw-r 12失败,有关详细信息,请参阅/usr/share/nginx/postfixadmin/functions.inc.PHP中的错误日志:106631堆栈跟踪:

问题是在letsencrypt文件(在我们的例子中是privakey.pem(和链接指向的letsencrypt存档文件夹之间存在符号链接。权限似乎还可以。那么为什么会失败呢?Symlink权限必须在两端匹配。因此,我们必须确保privkey.pem的符号链接和实际密钥,在我们的情况下/archive/privkey8.pem也采用了同样的方式。

因此,我们运行命令:

$chmod 644/路径到/foo.com/privakey.pem AND$chmod 644/path to/archive/privkey8.pem(您可能会在归档目录中有一个稍微不同的私钥名称。

这些文件通常设置为"400",重要的是chmod值匹配。

提示:许多终端程序(如好的旧Putty(根据其状态来不同地突出显示符号链接。我们的fullchain.pem链接是一种颜色(正在工作(,私钥链接是另一种颜色。。。并且不起作用。这是一个很好的线索,尤其是如果你是新手的话。

最新更新