iT邦幫忙

0

centos linux openwebmail 更改垃圾郵件處理方式無效

匿名 2014-02-13 17:39:342952 瀏覽

open webmail 2.53 更改垃圾信處理方式設定無效

如下幾個地方我都改過,重啟httpod 連sendmail 都重啟也沒用

/etc/httpd/conf.d/openwebmail.conf
/var/www/cgi-bin/openwebmail/etc/openwebmail.conf
/var/www/cgi-bin/openwebmail/etc/openwebmail.conf.help
/var/www/cgi-bin/openwebmail/etc/defaults/openwebmail.conf

裡面每個都改成這樣了

但是用使用者一看,都還是這樣,設定無效

總不能叫我一個一個用戶手動改吧...

1 個回答

4
性格妞
iT邦新手 2 級 ‧ 2014-02-14 11:32:35
最佳解答

此問題要分兩個部份處理:
一、修改已存在各user家目錄裡的設定檔:
曾經執行過openwebmail的使用者,
在家目錄就已存了之前的預設或已修改過的設定值,
管理者只要利用以下的指令,就可以直接修改個別使用者已存的各設定檔的內容。

<pre class="c" name="code">sed -i "s/\(default_trashreserveddays\t\)\([0-9][0-9]*\)/\199/" ~USERNAME/.openwebmail/openwebmailrc

至於怎麼一次把所有使用者用置換 USERNAME 來執行此指令,應不難,在此略過。

二、修改openwebmail的程式碼,避免使用者更動該值:
除了把你在一些檔案裡,指定成你所要的預設值之外,
修改 {OPENWEBMAIL}/cgi-bin/openwebmail/openwebmail-prefs.pl 裡面的約1649行:

<pre class="c" name="code">$temphtml = popup_menu(-name=>'trashreserveddays',
                       -values=>[0,1,2,3,4,5,6,7,14,21,30,60,90,180,999999],
                       -default=>$prefs{'trashreserveddays'},
                       -labels=>\%dayslabels,
                       -override=>'1',
                       defined($config_raw{'DEFAULT_trashreserveddays'})?('-disabled'=>'1'):());

把 -values 那一行改為:

<pre class="c" name="code">-values=>[99],

使用者就只有99這個選項可選而無法改成其他值了。
基本上這就可以防使用者改其他值,但實際上只要知道POST的語法,還是可以改該值,只是費的功夫比較大,這就不需防了。

匿名 檢舉

你好,因為第一段看不懂,我直接作了第二段了,重啟就能只剩99天的選項了,
順便把下面的廣告和病毒信設為7了看起來好像這樣就行了,還是會有其它影響呢?

第一段部份能請你一步一步說明嗎,我linux 不求甚解,能用即可,得過且過,所以所學不精,請還指導一下謝謝

性格妞 iT邦新手 2 級 ‧ 2014-02-14 18:25:06 檢舉

第一點是說,在你還沒限制任何人的設定值為99的時候,有人執行過webmail時的預設值是0,該設定會被寫在那使用者的家目錄裡 /home/user1/.openwebmail/openwebmailrc,那個檔案裡會有 trashreserveddays 0 的內容,你只要用管理者的身分執行

<pre class="c" name="code">sed -i "s/\(default_trashreserveddays\t\)\([0-9][0-9]*\)/\199/" /home/user1/.openwebmail/openwebmailrc

就會把該值改為99,就不用開編輯器、找到那一行、再修改的動作,你只要把user1替換成不同使用者,就可以快速把各使用者的設定檔快速修改。

我要發表回答

立即登入回答