酷!學園
技術討論區 => Linux 討論版 => 主題作者是: ayakouji 於 2010-05-10 22:03
-
大家好.
目前我有 2台 server
1. caserver 安裝 NIS 和 NFS
2. emailserver 安裝 Postfix + Apache2, 只使用 Openwebmail 來收發信, 無啟用 pop3
在 Openwebmail 的頁面輸入完帳號密碼後, 會出現如下錯誤訊息:
Couldn't update index db db /home/user01/.openwebmail/db/user01
在 NIS + NFS 的環境架設測試正常, 例如能夠以 user01 登入到 emailserver 的 shell, 即使 emailserver 的 /etc/passwd 底下沒有 user01 這個帳號.
也有完全的 read-write 權限.
caserver 上的 /etc/exports 如下: (172.16.1.11 是 emailserver 的 ip address)
/home 172.16.1.11(rw,async)
/var/spool/mail 172.16.1.11(rw,async)
emailserver 上的 mount 指令是這樣下的: (172.16.1.19 是 caserver 的 ip address))
mount -t nfs -o bg,soft 172.16.1.19:/home /home
mount -t nfs -o bg,soft 172.16.1.19:/var/spool/mail /var/spool/mail
原先 emailserver 裡就有建 user01 這個帳號且用 Openwebmail 登入後都正常.
後來把 emailserver 的 /home/user01 完整併保留原本的權限, 複製到 caserver 的 /home/user01
以及 /var/spool/mail/user01 也複製到 caserver 的 /var/spool/mail
然後再把 emailserver 上的 user01 刪除 (userdel), 連同 emailserver 底下的 /home/user01 都刪了。
當我在 emailserver 本機端使用 mutt 來為 user01 收發信時就都沒有問題,
所以我蠻確定我的 NIS, NFS, Postfix 運作都正常.
在想應該是 Openwebmail 這裡卡住了.
我看了一下 log 檔:
root@emailserver:~# tail /var/log/openwebmail.log
Mon May 10 23:07:52 2010 - [5597] (192.168.100.1) user01 - login - user01*sampleserver.com-session-0.558895513489009 - active=0,0,0
對了, emailserver 的 /etc/openwebmail/openwebmail.conf 裡設定的認證方式是:
auth_module auth_pam.pl
希望前輩們能幫幫忙看如何解決才好.
還有需要看什麼設定檔, 請跟我說, 謝謝!!
-
請先確定有啟動 nfslock 等服務。
-
大家好.
目前我有 2台 server
1. caserver 安裝 NIS 和 NFS
2. emailserver 安裝 Postfix + Apache2, 只使用 Openwebmail 來收發信, 無啟用 pop3
在 Openwebmail 的頁面輸入完帳號密碼後, 會出現如下錯誤訊息:
Couldn't update index db db /home/user01/.openwebmail/db/user01
在 NIS + NFS 的環境架設測試正常, 例如能夠以 user01 登入到 emailserver 的 shell, 即使 emailserver 的 /etc/passwd 底下沒有 user01 這個帳號.
也有完全的 read-write 權限.
caserver 上的 /etc/exports 如下: (172.16.1.11 是 emailserver 的 ip address)
/home 172.16.1.11(rw,async)
/var/spool/mail 172.16.1.11(rw,async)
emailserver 上的 mount 指令是這樣下的: (172.16.1.19 是 caserver 的 ip address))
mount -t nfs -o bg,soft 172.16.1.19:/home /home
mount -t nfs -o bg,soft 172.16.1.19:/var/spool/mail /var/spool/mail
原先 emailserver 裡就有建 user01 這個帳號且用 Openwebmail 登入後都正常.
後來把 emailserver 的 /home/user01 完整併保留原本的權限, 複製到 caserver 的 /home/user01
以及 /var/spool/mail/user01 也複製到 caserver 的 /var/spool/mail
然後再把 emailserver 上的 user01 刪除 (userdel), 連同 emailserver 底下的 /home/user01 都刪了。
當我在 emailserver 本機端使用 mutt 來為 user01 收發信時就都沒有問題,
所以我蠻確定我的 NIS, NFS, Postfix 運作都正常.
在想應該是 Openwebmail 這裡卡住了.
我看了一下 log 檔:
root@emailserver:~# tail /var/log/openwebmail.log
Mon May 10 23:07:52 2010 - [5597] (192.168.100.1) user01 - login - user01*sampleserver.com-session-0.558895513489009 - active=0,0,0
對了, emailserver 的 /etc/openwebmail/openwebmail.conf 裡設定的認證方式是:
auth_module auth_pam.pl
希望前輩們能幫幫忙看如何解決才好.
還有需要看什麼設定檔, 請跟我說, 謝謝!!
請問有試過建立一個新的user在try看看嗎?
或重新執行openwebmail -init
如果設定檔沒特別動過,小弟是覺得因為你是把舊的user01搬到新的user01,可能裡面有些openwebmail的設定值或權限有問題,比較好的測試方法就先建一個新的user測試看看!!
-
感謝二位的回應.
首先 ./openwebmail-tool.pl -init 執行過再試仍是相同的訊息。
我在 caserver 另建了一個新的 user02, (非從 emailserver 複製)
登入 Openwebmail 後出現:
Couldn't get write lock on /var/mail/user02!
所以我就試著手動建立這個檔:
# cd /var/mail
# touch user02
# chown user02:mail user02
結果再登入 Openwebmail 的結果。也就是說, 重新建立一個新 user 的結果仍相同。
Couldn't update index db db /home/user02/.openwebmail/db/user02
查詢 /var/log/openwebmail.log 的結果:
Tue May 11 15:36:37 2010 - [8632] (192.168.100.1) user02 - session cleanup - user02*sampleserver.com-session-0.722548720267699
Tue May 11 15:36:37 2010 - [8632] (192.168.100.1) user02 - login - user02*sampleserver.com-session-0.878070998777734 - active=0,1,2
Tue May 11 15:36:37 2010 - [8632] (192.168.100.1) user02 - create folderdir - /home/user02/mail, euid=1001, egid=1001 8 1001
Tue May 11 15:36:37 2010 - [8632] (192.168.100.1) user02 - create dir - /home/user02/.openwebmail, euid=1001, egid=1001 8 1001
Tue May 11 15:36:37 2010 - [8632] (192.168.100.1) user02 - create dir - /home/user02/.openwebmail/db, euid=1001, egid=1001 8 1001
Tue May 11 15:36:37 2010 - [8632] (192.168.100.1) user02 - create dir - /home/user02/.openwebmail/webcal, euid=1001, egid=1001 8 1001
Tue May 11 15:36:37 2010 - [8632] (192.168.100.1) user02 - create dir - /home/user02/.openwebmail/webdisk, euid=1001, egid=1001 8 1001
Tue May 11 15:36:37 2010 - [8632] (192.168.100.1) user02 - create dir - /home/user02/.openwebmail/pop3, euid=1001, egid=1001 8 1001
Tue May 11 15:36:37 2010 - [8632] (192.168.100.1) user02 - create dir - /home/user02/.openwebmail/webmail, euid=1001, egid=1001 8 1001
Tue May 11 15:36:37 2010 - [8632] (192.168.100.1) user02 - create dir - /home/user02/.openwebmail/webaddr, euid=1001, egid=1001 8 1001
Tue May 11 15:36:40 2010 - [8633] (192.168.100.1) user02 - db error - Couldn't update index db /home/user02/.openwebmail/db/virus-mail
Tue May 11 15:36:43 2010 - [8633] (192.168.100.1) user02 - db error - Couldn't update index db /home/user02/.openwebmail/db/spam-mail
Tue May 11 15:36:46 2010 - [8633] (192.168.100.1) user02 - db error - Couldn't update index db /home/user02/.openwebmail/db/mail-trash
我用的是 Ubuntu 9.10 的版本, nfs-kernel-server 的套件.
啟動後都沒有看到 nfslock 的服務....
以下是使用 netstat -nltp 查詢的結果:
root@caserver:/home/user02/.openwebmail#netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1959/portmap
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 990/sshd
tcp 0 0 0.0.0.0:54487 0.0.0.0:* LISTEN 11840/rpc.mountd
tcp 0 0 0.0.0.0:38231 0.0.0.0:* LISTEN 2180/rpc.statd
tcp 0 0 0.0.0.0:2049 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:834 0.0.0.0:* LISTEN 9872/ypserv
tcp 0 0 0.0.0.0:835 0.0.0.0:* LISTEN 9884/ypbind
tcp 0 0 0.0.0.0:48932 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:837 0.0.0.0:* LISTEN 9878/rpc.ypxfrd
tcp6 0 0 :::22 :::* LISTEN 990/sshd
再麻煩各位耐心的 debug 了, 感謝您!!
-
ubuntu ? 確認 nfs-common 有無正確啟動.
-
問題已解決!!
原本在 emailserver 上的 mount 指令是這樣下的: (172.16.1.19 是 caserver 的 ip address))
mount -t nfs -o bg,soft 172.16.1.19:/home /home
mount -t nfs -o bg,soft 172.16.1.19:/var/spool/mail /var/spool/mail
需改成:
mount -t nfs -o bg,soft,nolock 172.16.1.19:/home /home
mount -t nfs -o bg,soft,nolock 172.16.1.19:/var/spool/mail /var/spool/mail
關鍵在於 nolock 這個option. 如此一來 Openwebmail 就能夠寫入了.
詳情是去 man nfs 看到的。
再次感謝 kenduest 讓我能朝著 lock 的方向去思考。
也謝謝 jaymsa 提供 debug 的方法給我。
附註, 這樣就能很放心的把 mount 改寫到 /etc/fstab 了:
172.16.1.19:/home /home nfs bg,soft,nolock
172.16.1.19:/var/spool/mail /var/spool/mail nfs bg,soft,nolock