我昨天删除了 /etc/passwd,今天使用 SendMail 时遇到了问题

我昨天删除了 /etc/passwd,今天使用 SendMail 时遇到了问题

可能重复:
我昨天删除了 /etc/passwd,今天使用 SendMail 时遇到了问题

所以昨天 Webmin 删除了我的/etc/passwd,尽管看起来一切正常,但是在 PHP 脚本中使用时我无法让 sendmail 工作。

使用mail()将返回 false,使用PHPMailer将导致“邮件程序无法执行 sendmail”。

我 100% 确定该问题是由于该passwd文件引起的,我只是想不出如何解决它。

我注意到有几个用户已经腐败,我不得不替换他们。

编辑:我可能应该提一下,如果我尝试发送它发送邮件它本身运行完美。

对于那些说恢复 /etc/passwd 的人,我已经这样做了,但问题仍然存在。

11 月 8 日 09:13:15 jbrunton sendmail[31494]: NOQUEUE: SYSERR(UID48): /etc/mail/submit.cf: 第 432 行: readcf: 选项 RunAsUser: 未知用户 smmsp: 权限被拒绝

11 月 8 日 09:13:15 jbrunton sendmail[31494]: NOQUEUE: SYSERR(UID48): /etc/mail/submit.cf: 第 451 行: readcf: 选项 TrustedUser: 未知用户 smmsp: 权限被拒绝

11 月 8 日 09:13:15 jbrunton sendmail[31494]: NOQUEUE: SYSERR(UID48): 无法写入队列目录 /var/spool/clientmqueue/ (RunAsGid=0, required=51): 权限被拒绝

答案1

您能从备份中恢复旧的 /etc/passwd 文件吗?如果可以,我会这样做并进行比较。运行您的 PHP 脚本的用户可能不再存在,并且操作系统(甚至 sendmail)正在尝试查找该用户以检查它是否可以运行 Sendmail。

答案2

在 passwd 文件中将 smmsp 的 UID 从 48 更改为 51,它就可以起作用了。

相关内容