作者 主題: Centos Crond問題  (閱讀 1731 次)

0 會員 與 1 訪客 正在閱讀本文。

Yanny

  • 憂鬱的高中生
  • ***
  • 文章數: 177
    • 檢視個人資料
Centos Crond問題
« 於: 2015-11-12 13:38 »
小弟有一個問題想請教各位學長,我有一台Centos 6.6的 linux,我在crond上面跑openvas的排程,我把訊息導入到null,也修改了MAILTO=yanny,正常執行不會有問題,但openvas執行有錯誤的時候,crond 就會發信到root,請問有辦法讓他不發信嗎?

00 3 *  *  *   root /usr/sbin/openvas-nvt-sync > /dev/null 2>&1

gwstudy

  • 活潑的大學生
  • ***
  • 文章數: 205
    • 檢視個人資料
Re: Centos Crond問題
« 回覆 #1 於: 2015-11-12 17:38 »
你試試改成這樣看看:
00 3 *  *  *   root /usr/sbin/openvas-nvt-sync 2>&1 > /dev/null

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17464
    • 檢視個人資料
    • http://www.study-area.org
Re: Centos Crond問題
« 回覆 #2 於: 2015-11-12 21:53 »
照理說是不會再送出資訊才對啊...

Yanny

  • 憂鬱的高中生
  • ***
  • 文章數: 177
    • 檢視個人資料
Re: Centos Crond問題
« 回覆 #3 於: 2015-11-13 08:48 »
Hi gwstudy,這個方法還是不行

Hi netman,順利執行完畢,crond不會發mail,但crond執行有錯誤,他就會發mail到root

dark

  • 俺是博士!
  • *****
  • 文章數: 1581
    • 檢視個人資料
Re: Centos Crond問題
« 回覆 #4 於: 2015-11-14 07:50 »
/etc/crontab 中
MAILTO=abc
00 3 *  *  *   root /usr/sbin/openvas-nvt-sync

應該是指指令列如此執行 , 螢幕出現什麼 , 就寄給 abc
 
若 /usr/sbin/openvas-nvt-sync 內容是
show=play(now)
if(show!="") echo "$show" | sendmail $adminname

那 play 的標準錯誤會輸出到螢幕
但 play 的執行結果會寄給 adminname 這變數

所以以該找 openvas 設定檔看看有沒有指定寄信給誰

若沒有
* * * * * root set > /tmp/settmp
看看改寫這時環境變數 USER , USERNAME , UID ... 是否能達成願望
 ... 要是吃 EUID , 那只好 crond 呼叫 ssh 127.0.0.1 你要的帳號執行了



Yanny

  • 憂鬱的高中生
  • ***
  • 文章數: 177
    • 檢視個人資料
Re: Centos Crond問題
« 回覆 #5 於: 2015-11-18 15:59 »
openvas-nvt-sync沒有找到類似$adminname的變數,看起來還是要自己寫變數,可能要好好研究一下怎麼寫,謝謝Dark的幫忙

dark

  • 俺是博士!
  • *****
  • 文章數: 1581
    • 檢視個人資料
Re: Centos Crond問題
« 回覆 #6 於: 2015-11-18 16:35 »
既然要用換使用者方式
最簡單的方法是

grep yanny /etc/passwd

新增一行
yanny2:x:...都一樣...:/usr/sbin/openvas-nvt-sync

也不須密碼 , 反正 crond 是 root

00 3 *  *  *   root su - yanny2