/usr/sbin/sendmail:权限被拒绝

/usr/sbin/sendmail:权限被拒绝

我正在尝试在我的 fedora 20 上设置邮件。每次我尝试发送测试邮件时,它都会告诉我权限被拒绝/usr/sbin/sendmail

我检查了权限,这是输出:

[root@localhost uone]# ls -ld /usr/sbin/sendmail
drwxr-sr-x. 2 uone uone 4096 Jun 14 17:42 /usr/sbin/sendmail

当我检查日志时/var/logs/mail,我得到了这个

[root@localhost uone]# ls /var/log/maillog
/var/log/maillog

[root@localhost home]# cat /var/log/maillog
[root@localhost home]#  

跑步ls -l给了我这个

[root@localhost home]# ls -l /var/log/maillog
-rw-------. 1 root root 0 Jul 6 11:27 /var/log/maillog

ls -l在 sendmail 目录上做一个给我这个

[root@localhost sbin]# ls -l | grep sendmail
drwxr-sr-x. 2 uone uone 4096 Jun 14 17:42 sendmail lrwxrwxrwx. 1 root root 15 Jul 12 19:04 sendmail.ssmtp -> /usr/sbin/ssmtp

我有两个问题:

  1. 我在设置“邮件”时遗漏了什么吗?在尝试发送邮件之前我还需要做什么吗?

  2. 如何获取日志以准确了解发生了什么情况?

答案1

您的权限问题不是文件权限问题,而是 SELinux 不允许 sendmail 可执行文件访问文件系统上特定位置的文件。处理这些问题最好的朋友是使用 SELinux 疑难解答 GUI。

$ sealert -b 

   1号

然后,您需要按照建议将必要的上下文添加到您的文件系统中以安抚 SELinux。

    SS #2

笔记:在上面的示例中,我选择了第二个选项,并将运行命令semanage并按restorecon描述修复我的问题。您需要对您的sendmail问题执行相同的操作。

费多拉的一部分?

是的,SELinux,因此用于排除故障的工具是所有 Red Hat 发行版的一部分。每当我无法找到给定可执行文件的包名称时,我都会使用命令repoquery

$ repoquery -qf */sealert
setroubleshoot-server-0:3.2.17-1.fc20.x86_64
setroubleshoot-server-0:3.2.14-2.fc20.x86_64

作为 GUI 运行的问题

如果您在作为 GUI 运行时遇到问题,sealert您可以通过终端返回运行它,如下所示:

$ sudo sealert -a /var/log/audit/audit.log | less

然后,您必须查看特定问题的输出,并使用建议的命令来修复您的 SELinux 问题。您正在寻找表达以下内容的台词:

***** 插件 openvpn(47.5 置信度)建议 ****************************

具有较高“置信度”值的操作是您可能想要采取的操作。这些行后面是“修复”SELinux 问题的命令,例如:

$ sudo semanage fcontext -a -t home_cert_t /home/slm/somedom.com.ca.crt
$ sudo restorecon -R -v /home/slm/somedom.com.ca.crt

参考

相关内容