由于需要,想弄一个自动发送邮件的mailx或者sendmail

但是执行

echo "test" | mail -s "Worning mail !" xxxxx@qq.com;

的时候就会报错,提示使用ipv6,但是网卡没有配置ipv6的设置,所以需要强制然他默认为ipv4

vi /etc/main.cf

# Enable IPv4, and IPv6 if supported
inet_protocols = all   #将这个修改为ipv4   记住是小写的 不要看他的注释,他的注释是错误的

但是修改完成后,还是不行,重启还是失败

# /etc/init.d/postfix  restart
Shutting down postfix:                                     [FAILED]
Starting postfix:                                          [FAILED]

很难受,日志也没有相关的记载  日志的位置是/var/log/maillog

还是根据这个入手,结果看以前的日志,发现好多报警

Nov 27 22:46:43 xxx postfix/sendmail[24028]: warning: or the command is run from a set-uid root process
Nov 27 22:46:43 xxx postfix/sendmail[24095]: warning: or the command is run from a set-uid root process
Nov 27 22:46:43 xxx postfix/sendmail[24206]: warning: or the command is run from a set-uid root process
Nov 27 22:46:43 xxx postfix/sendmail[24028]: warning: the Postfix sendmail command must be installed without set-uid root file permissions
Nov 27 22:46:43 xxx postfix/sendmail[24095]: warning: the Postfix sendmail command must be installed without set-uid root file permissions
Nov 27 22:46:43 xxx postfix/sendmail[24206]: warning: the Postfix sendmail command must be installed without set-uid root file permissions
Nov 27 22:46:43 xxx postfix/sendmail[24095]: warning: inet_protocols: IPv6 support is disabled: Address family not supported by protocol
Nov 27 22:46:43 xxx postfix/sendmail[24028]: warning: inet_protocols: IPv6 support is disabled: Address family not supported by protocol
Nov 27 22:46:43 xxx postfix/sendmail[24206]: warning: inet_protocols: IPv6 support is disabled: Address family not supported by protocol
Nov 27 22:46:43 xxx postfix/sendmail[24095]: warning: inet_protocols: configuring for IPv4 support only
Nov 27 22:46:43 xxx postfix/sendmail[24206]: warning: inet_protocols: configuring for IPv4 support only
Nov 27 22:46:43 xxx postfix/sendmail[24028]: warning: inet_protocols: configuring for IPv4 support only
Nov 27 22:46:43 xxx postfix/sendmail[24206]: fatal: file /etc/postfix/main.cf: parameter mail_owner: unknown user name value: postfix
Nov 27 22:46:43 xxx postfix/sendmail[24095]: fatal: file /etc/postfix/main.cf: parameter mail_owner: unknown user name value: postfix
Nov 27 22:46:43 xxx postfix/sendmail[24028]: fatal: file /etc/postfix/main.cf: parameter mail_owner: unknown user name value: postfix

其中最后几行持续输入一个参数报错,mail_owner这个参数,提示没有用户,去mail.rc文件中找到这个参数,后面的是=postfix 于是在/etc/passwd中找这个用户,发现这个用户也被删掉

more /etc/passwd | grep postfix

echo "postfix:x:89:89::/var/spool/postfix:/sbin/nologin" >> /etc/passwd

由于系统日志没有记录,不知道是否添加成功,手动启动postfix进程,发现还是失败

于是尝试将postfix卸载重新安装

但是yum持续有问题,结果发现/etc/resolv.conf中nameserver 8.8.8.8被注释掉

打开注释,重新执行yum clean all; yum makecache

可以执行

再次执行yum remove postfix ,结果再卸载时候,需要将其他4个文件一并卸载,(但是用rpm -e 但是卸载报错,因为有其他服务以来postfix这个包,无法卸载),yum reinstall 也无法安装

这4个包分别是:

很难受,那也要卸载掉,于是点了y继续卸载,写在成功后,重新安装

yum install postfix -y   安装成功,但是只安装了他自己,没有其他的包呀!

安装完成后,将其他的包也重新装上,毕竟cron和sysstat是非常重要的东西

yum -y install vixie-cron

yum install sysstat -y

执行完上述的命令就可以将卸载的东西全部还原(这里如果原来的crontab中有执行计划的话,再次卸载安装的话,执行计划是不会丢失的,具体的位置在/var/spool/cron/下面,如果不放心可以备份)

全部弄完后,再吃重启,发现可以重启成功了,但是第一步中修改的ipv4变回了all,需要再次修改后,重启,

最后,postfix启动成功

【Linux】postfix大坑笔记的更多相关文章

  1. Linux实战教学笔记08:Linux 文件的属性(上半部分)

    第八节 Linux 文件的属性(上半部分) 标签(空格分隔):Linux实战教学笔记 第1章 Linux中的文件 1.1 文件属性概述(ls -lhi) linux里一切皆文件 Linux系统中的文件 ...

  2. Linux实战教学笔记13:定时任务补充

    第十三节 定时任务补充 标签(空格分隔): Linux实战教学笔记 ---[更多资料点我查看][1] 1,生产环境常用Crontab专业实例 1.1书写crontab定时任务多个基本要领 1.1.1 ...

  3. Linux实战教学笔记07:Linux系统目录结构介绍

    第七节 Linux系统目录结构介绍 标签(空格分隔):Linux实战教学笔记 第1章 前言 windows目录结构 C:\windows D:\Program Files E:\你懂的\精品 F:\你 ...

  4. Linux实战教学笔记06:Linux系统基础优化

    第六节 Linux系统基础优化 标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 基础环境 第2章 使用网易163镜像做yum源 默认国外的yum源速度很慢,所以换成国内的. 第一步:先备份 ...

  5. Linux实战教学笔记05:远程SSH连接服务与基本排错(新手扫盲篇)

    第五节 远程SSH连接服务与基本排错 标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 远程连接LInux系统管理 1.1 为什么要远程连接Linux系统 在实际的工作场景中,虚拟机界面或物理 ...

  6. Linux实战教学笔记04:Linux命令基础

    第四节:Linux命令基础 标签(空格分隔):Linux实战教学笔记 第1章 认识操作环境 root:当前登陆的用户名 @分隔符 chensiqi:主机名 -:当前路径位置 用户的提示符 1.1 Li ...

  7. Linux实战教学笔记03:操作系统发展历程及系统版本选择

    标签(空格分隔): Linux实战教学笔记-陈思齐 第1章 Linux简介 1.1 什么是操作系统? 简单讲:操作系统就是一个人与计算机硬件的中介. 操作系统,英文名称Operating System ...

  8. Linux实战教学笔记02:计算机系统硬件核心知识

    标签(空格分隔):Linux实战教学笔记-陈思齐 第1章 互联网企业常见服务器介绍 1.1 互联网公司服务器品牌 - DELL(大多数公司,常用) - HP - IBM(百度在用) 浪潮 联想 航天联 ...

  9. Linux实战教学笔记01:计算机硬件组成与基本原理

    标签(空格分隔): Linux实战教学笔记 第1章 如何学习Linux 要想学好任何一门学问,不仅要眼睛看,耳朵听,还要动手记,勤思考,多交流甚至尝试着去教会别人. 第2章 服务器 2.1 运维的基本 ...

随机推荐

  1. 【Django Python版本对应】

    使用Python36 时应该使用Django版本1.11.4 pip install django==1.11.4 版本对应表: Django version Python versions 1.8 ...

  2. 九、TestNG超时测试

    "超时"表示如果单元测试花费的时间超过指定的毫秒数,那么TestNG将会中止它并将其标记为失败. 使用属性 timeOut = 参数(1s*1000) package com.lc ...

  3. css 04-CSS选择器:伪类

    04-CSS选择器:伪类 #伪类(伪类选择器) 伪类:同一个标签,根据其不同的种状态,有不同的样式.这就叫做"伪类".伪类用冒号来表示. 比如div是属于box类,这一点很明确,就 ...

  4. HDU4388-Stone Game II-Nim变形

    http://acm.hdu.edu.cn/showproblem.php?pid=4388 Nim变形,对一个\(n\)个石子的堆,每次取\(k(0<k<n)\)个(注意不能全取光),同 ...

  5. sqlmap进阶篇—POST注入三种方法

    测试是否存在post注入 第一种方法 直接加--form让它自动加载表单 第二种方法 把form表单里面提交的内容复制出来,放到data中跑 第三种方法 先用burp suite抓包,把包的内容存到本 ...

  6. Java与C#的代码区别

    Java和C#都是编程的语言,它们是两个不同方向的两种语言 相同点: 他们都是面向对象的语言,也就是说,它们都能实现面向对象的思想(封装,继承,多态) 区别: 1.c#中的命名空间是namespace ...

  7. H3C S5120V2-SI 交换机配置

    连接终端线 可以看到开机信息 ......................................................................Done. System is ...

  8. 动态SQL基本语句用法

    1.if语句 如果empno不为空,则在WHERE参数后加上AND empno = #{empno},这里有1=1所以即使empno为null,WHERE后面也不会报错. 映射文件 <selec ...

  9. Android驱动-Java入门学习(java安装)

    在ubuntu 14.04上java开发环境. 下载 jdk-7u75-linux-x64.tar.gz 使用tar xvf jdk-7u75-linux-x64.tar.gz 解压 在/usr/li ...

  10. java数组基础知识

    数组的定义:int[] array=new array[n];int array[]={, , , ,};定义了数组,JVM就会给其一个空间,数组是应用类型的数据类型,其存储方式是随机存储. 数组的遍 ...