歡迎您光臨本站 註冊首頁

dovecot收信許可權問題(已解決)

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

dovecot收信許可權問題(已解決)

又來麻煩各位了。。。。

CentOS5.3+Postfix,採用dovecot做pop3。現在出了一個小問題,郵件能夠正常發送,但在客戶端用OE收信的時候卻收不到郵件,去伺服器看了下dovecot的log日誌,是許可權的問題,如下:

dovecot: Aug 18 14:33:09 Info: pop3-login: Login: user=<test1@test.cn>, method=PLAIN, rip=192.168.1.97, lip=192.168.1.12
dovecot: Aug 18 14:33:09 Error: POP3(test1@test.cn): open(/var/mailbox/test.cn/test1/Maildir/cur/1250576277.V803I1002f4M162054.mail.test.cn:2,) failed: Permission denied
dovecot: Aug 18 14:33:09 Error: POP3(test1@test.cn): Couldn't init INBOX: Internal error occurred. Refer to server log for more information.
dovecot: Aug 18 14:33:09 Info: POP3(test1@test.cn): Mailbox init failed top=0/0, retr=0/0, del=0/0, size=0

我去該用戶的目錄里看了一下,.../Maildir/cur/中有一封新郵件,但該郵件的所有者是postfix,其他組和用戶的許可權都是空,我手動將該郵件的許可權改了一下,改成其他組和用戶都有read and write的許可權,此時再在客戶端用OE收取,可以正常收信了。但再發一封時問題依舊,新郵件的許可權仍然只是針對Postfix用戶。我想了很久,也google了,沒有找到解決問題的辦法,不知道該在哪裡指定這個dovecot收信的許可權呢?我將/var/mailbox目錄的許可權設置為777也沒用,收到的新郵件的許可權仍然只有postfix用戶能夠訪問。。。。。麻煩大家給個思路,謝謝了!

[ 本帖最後由 mildyi0425 於 2009-8-20 10:56 編輯 ]
《解決方案》

dovecot.conf文件貼出來
《解決方案》

原帖由 ruochen 於 2009-8-19 14:07 發表 http://bbs2.chinaunix.net/images/common/back.gif
dovecot.conf文件貼出來

base_dir = /var/run/dovecot/
protocols = pop3
listen = *
log_path = /var/log/dovecotlog
disable_plaintext_auth = no
ssl_disable = yes
mail_location = maildir:/var/mailbox/%d/%n/Maildir
pop3_uidl_format=%08Xu%08Xv

auth default {
        ...
        mechanisms = PLAIN
        passdb sql {
                args = /etc/dovecot/dovecot-sql.conf
        }
        ...
        userdb sql {
                args = /etc/dovecot/dovecot-sql.conf
        }
        ...
        socket listen {
                ...
                client {
                        path = /var/run/dovecot/auth-client
                        mode = 0660
                        user = postfix
                        group = postfix
                }
        }
}


就是以上這些,都是照著google的文章來配的,其他的沒列出來的都被註釋掉了。幫看一下,有少的地方我再貼,麻煩了~
《解決方案》

沒看到dovecot的錯誤


另外main.cf裡面的下面參數你是怎麼配置的?
virtual_mailbox_base =

[ 本帖最後由 ruochen 於 2009-8-19 16:57 編輯 ]
《解決方案》

postfix的運行用戶是什麼?
main.cf裡面的mail_owner的配置是什麼?
《解決方案》

原帖由 ruochen 於 2009-8-19 16:53 發表 http://bbs2.chinaunix.net/images/common/back.gif
沒看到dovecot的錯誤
先逐級確認(/var/mailbox/test.cn/test1/Maildir/cur/的許可權

另外main.cf裡面的下面參數你是怎麼配置的?
virtual_mailbox_base =

我去目錄看了下/var/mailbox/test.cn/test1/Maildir/cur/的許可權,每個文件夾的許可權都已經設置成777,所有用戶可讀寫,我把截圖傳上來了。



我試著手動將../test.cn/這個目錄設置為所有文件可讀寫(就是圖片中的那個File Access),可以收郵件了,但問題還是沒有解決,新郵件的許可權仍跟以前一樣,如圖



即使把許可權設置為了777,為什麼新生成的郵件的許可權還是只能postfix訪問?我的想法是能不能指定圖片中的那個file access?讓他在生成新文件的時候的許可權是對所有組可讀寫的呢?或者說為什麼dovecot收信時不是用postfix 來收信的呢?

補充一個比較菜的問題:為什麼文件夾的許可權設置為所有用戶可讀寫了,可文件夾裡面的文件許可權卻沒有跟著父目錄改變呢?道理上講新生成文件的許可權不是應該跟著父目錄的嗎?

virtual_mailbox_base目錄是沒有問題的:

virtual_mailbox_base = /var/mailbox/
virtual_mailbox_domains = mysql:/etc/postfix/mysql/mysql_virtual_domains_maps.cf
virtual_mailbox_limit = 20971520
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql/mysql_virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_mailbox_maps = mysql:/etc/postfix/mysql/mysql_virtual_mailbox_maps.cf

我這個問題是應該繼續從許可權方面考慮呢還是從配置方面考慮?我記得我前段時間在虛擬機學習測試的時候沒有出現過這個問題的,我也並沒有特別的指定過許可權。。。苦惱

[ 本帖最後由 mildyi0425 於 2009-8-19 17:33 編輯 ]
《解決方案》

原帖由 ruochen 於 2009-8-19 16:56 發表 http://bbs2.chinaunix.net/images/common/back.gif
postfix的運行用戶是什麼?
main.cf裡面的mail_owner的配置是什麼?

postfix的運行用戶就是postfix吧?這個問題沒考慮過.......有地方可以查看嗎?

main.cf裡面的mail_owner指定的是postfix:

# The mail_owner parameter specifies the owner of the Postfix queue
# and of most Postfix daemon processes.  Specify the name of a user
# account THAT DOES NOT SHARE ITS USER OR GROUP ID WITH OTHER ACCOUNTS
# AND THAT OWNS NO OTHER FILES OR PROCESSES ON THE SYSTEM.  In
# particular, don't specify nobody or daemon. PLEASE USE A DEDICATED
# USER.
#
mail_owner = postfix
《解決方案》

virtual_mailbox_base = /var/mailbox/

這個推薦是後面沒有 / 吧
另外你的selinux是什麼配置?

ps aux|grep postfix就可以知道運行的用戶的
《解決方案》

原帖由 mildyi0425 於 2009-8-19 17:19 發表 http://bbs2.chinaunix.net/images/common/back.gif


我去目錄看了下/var/mailbox/test.cn/test1/Maildir/cur/的許可權,每個文件夾的許可權都已經設置成777,所有用戶可讀寫,我把截圖傳上來了。

346075

我試著手動將../test.cn/這個目錄設置為所有文件可讀 ...


補充一個比較菜的問題:為什麼文件夾的許可權設置為所有用戶可讀寫了,可文件夾裡面的文件許可權卻沒有跟著父目錄改變呢?道理上講新生成文件的許可權不是應該跟著父目錄的嗎?
----那要看是以什麼用戶運行的程序寫進去的
《解決方案》

原帖由 ruochen 於 2009-8-19 17:44 發表 http://bbs2.chinaunix.net/images/common/back.gif
virtual_mailbox_base = /var/mailbox/

這個推薦是後面沒有 / 吧
另外你的selinux是什麼配置?

ps aux|grep postfix就可以知道運行的用戶的

我把 / 去掉之後試了一下,還是那樣,客戶端仍是收不到信,cur目錄中郵件的許可權也是跟以前一樣

我的selinux是直接禁用的

# ps aux | grep postfix
postfix  21439  0.0  0.1  25748  6584 ?        S    Aug16   0:00 /usr/sbin/httpd
postfix  21440  0.0  0.1  25884  6628 ?        S    Aug16   0:00 /usr/sbin/httpd
postfix  21441  0.0  0.1  25748  6584 ?        S    Aug16   0:00 /usr/sbin/httpd
postfix  21442  0.0  0.1  25884  6628 ?        S    Aug16   0:00 /usr/sbin/httpd
postfix  21443  0.0  0.1  25748  6592 ?        S    Aug16   0:00 /usr/sbin/httpd
postfix  21444  0.0  0.1  25748  6584 ?        S    Aug16   0:00 /usr/sbin/httpd
postfix  21445  0.0  0.1  25884  6628 ?        S    Aug16   0:00 /usr/sbin/httpd
postfix  21446  0.0  0.1  25748  6584 ?        S    Aug16   0:00 /usr/sbin/httpd
root     22377  0.0  0.0   8272  1436 ?        Ss   Aug19   0:00 /usr/libexec/postfix/master
postfix  22378  0.0  0.0   8392  1896 ?        S    Aug19   0:00 qmgr -l -t fifo -u
postfix  27751  0.0  0.0   8332  1396 ?        S    08:10   0:00 pickup -l -t fifo -u
root     27816  0.0  0.0   3912   692 pts/1    S+   08:32   0:00 grep postfix

還有子目錄父目錄許可權的問題,我所有的命令都是用root用戶執行的....

[火星人 ] dovecot收信許可權問題(已解決)已經有1360次圍觀

http://coctec.com/docs/service/show-post-21083.html