解決Centos關閉You have new mail in /var/spool/mail/root提示(轉)


今天查看內存的時候 出現一天奇怪的提示

You have new mail in /var/spool/mail/root

有的時候每敲一下回車,就出來You have new mail in /var/spool/mail/root的提示,究竟是為什么呢?

Linux 系統經常會自動發出一些郵件來提醒用戶系統中出了哪些問題(收件箱位置:/var/mail/)。可是這些郵件都是發送給 root 用戶的。出於系統安全考慮,通常不建議大家直接使用 root 帳戶進行日常操作。所以要想點辦法來讓系統把發給 root 用戶的郵件也給自己指定的外部郵箱發一份,或者是直接關閉此項服務。

 

1、關閉sendmail服務,這里介紹一種不用關閉sendmail服務的方法


echo “unset MAILCHECK” >> /etc/profilesource /etc/profile

關閉sendmail的功能:

chmod 0 /usr/sbin/sendmailmv /usr/sbin/sendmail /usr/sbin/sendmail.bakln -s  /var/qmail/bin/sendmail /usr/sbin/sendmail

清空 /var/spool/mail/root日志

 cat /dev/null > /var/spool/mail/rootcat /dev/null>;/var/spool/mail/root

2、root郵件轉發到自己的郵箱
或者轉發到自己的郵箱,下面介紹下怎么轉發到自己的郵箱(此方法未經本人親自驗證 來源於網絡,有喜歡折騰的請自己研究,成功了 可以跟帖分享經驗)

方法一:
修改此文件

/etc/log.d/logwatch.conf
添加MailTo = root,xxx@xxx.com

方法二

/etc/aliases

添加root: xxx@xxx.com

注意:好像如果設置成和主機同域的,好像郵件就發不成,比如本機郵件就是moper.me,那么發這個就沒法發,相應的發其他郵箱就可以成功。

關於“/etc/aliases”:

當sendmail收到一個要送給xxx的信時,它會依據/etc/aliases文件中的內容送給另一個使用者。這個功能可以創造一個只有在信件 系統內才有效的使用者。例如mailing list就會用到這個功能,在 mailing list 中,我們可能會創造一個叫 redlinux@link.ece.uci.edu的 mailinglist,但實際上並沒有一個叫redlinux的使用者。實際 aliases檔的內容是將送給這個使用者的信都收給mailing list處理程式負責分送的工作。

/etc/aliases是一個文本文檔,而sendmail需要一個二進位格式的 /etc/aliases.db。newaliases的功能傳是將/etc/aliases轉換成一個sendmail所能了解的db文件:

[root@centos ~]# newaliases

//somebody除root外的其它用的郵件可以通過在用戶/home/下建立一個.forward文件實現轉發:

other1
other2

文件權限設為600,作用一樣,但.forward可以由用戶自行維護,而aliases則只有治理員才能修改。

設定~/.forward檔案加入轉寄目的即可

網上很多教程是你抄我,我抄你,根本就沒有驗證過的,比如有種方法是修改”/usr/share/logwatch/default.conf/logwatch.conf“配置文件,在centos6中根本就沒有這個文件,至於以前的版本有沒有就不知道了。

還有很多教程,只有“echo "unset MAILCHECK" >> /etc/profile”,而沒有“source /etc/profile”,這也是不對的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM