![为什么当我尝试使用 postfix postmap sasl 密码文件时会出现错误?](https://linux22.com/image/1075480/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%BD%93%E6%88%91%E5%B0%9D%E8%AF%95%E4%BD%BF%E7%94%A8%20postfix%20postmap%20sasl%20%E5%AF%86%E7%A0%81%E6%96%87%E4%BB%B6%E6%97%B6%E4%BC%9A%E5%87%BA%E7%8E%B0%E9%94%99%E8%AF%AF%EF%BC%9F.png)
我刚刚安装了 postfix 作为卫星系统。我需要在我的邮件提供商 smpt 上进行身份验证。postfix 需要从我的 sasl-passwd 文件构建 sasl 数据库。但它无法做到这一点。我该如何修复此错误(最后一行)?:
root@confus:/etc/postfix# echo 'smtp_sasl_auth_enable = yes' >> main.cf
root@confus:/etc/postfix# echo 'smtp_sasl_security_options = noplaintext noanonymous' >> main.cf
root@confus:/etc/postfix# echo 'smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd' >> main.cf
root@confus:/etc/postfix# ll
total 116
drwxr-xr-x 3 root root 4096 2011-06-03 13:56 ./
drwxr-xr-x 154 root root 12288 2011-06-03 13:33 ../
-rw-r--r-- 1 root root 318 2011-06-03 13:32 dynamicmaps.cf
-rw-r--r-- 1 root root 1562 2011-06-03 13:53 main.cf
-rw-r--r-- 1 root root 5563 2011-06-03 13:32 master.cf
-rw-r--r-- 1 root root 19509 2011-05-10 15:06 postfix-files
-rwxr-xr-x 1 root root 8729 2011-05-10 15:06 postfix-script*
-rwxr-xr-x 1 root root 25752 2011-05-10 15:06 post-install*
drwxr-xr-x 2 root root 4096 2011-05-10 15:06 sasl/
-rw------- 1 confus confus 51 2011-06-03 13:56 sasl_passwd
-rw-r--r-- 1 root root 28 2011-06-03 13:43 sender_canonical
-rw-r--r-- 1 root root 12288 2011-06-03 13:47 sender_canonical.db
root@confus:/etc/postfix# postmap sasl_passwd
postmap: fatal: open database sasl_passwd.db: Permission denied
root@confus:/etc/postfix# postmap hash:sasl_passwd
postmap: fatal: open database sasl_passwd.db: Permission denied
inb4 ‘sudo’:注意“root@confus”
答案1
“您需要确保 postfix 用户能够读取该文件。您可以发布输出sudo ls -l /etc/postfix/sasl_passwd.db
以获得更多帮助。”
来自评论:“将 postfix 的配置目录的所有者更改为 postfix 即可。”
答案2
我也一样,之后问题变得更严重
Linux ... 4.9.0-9-amd64 #1 SMP Debian 4.9.168-1+deb9u2 (2019-05-13) x86_64 GNU/Linux
返回:
chown root:root dynamicmaps.cf
chmod 644 dynamicmaps.cf
再次尝试后postmap sasl_passwd
,sasl_密码数据库已创建并且看起来正常
答案3
postmap 命令调用以 postfix 用户身份运行的服务。如果您希望在 /etc/postfix 中创建地图,则影响较小的修复方法是仅更改目录的组所有权。这解决了“所有权警告”和后续问题。
chown postfix /etc/postfix
chmod g+rwx /etc/postfix
答案4
通常,这可以解决这个问题
cd /etc/postfix
sudo chown -R postfix .
sudo chgrp -R postfix .
sudo chmod -R ugo+rwx .
同样重要的是使 postfix 目录可由 postfix 用户写入,因为它有时会尝试在此处创建或替换文件(它可能应该保存在其他地方!)