作者 主題: NIS + NFS + Postfix + Openwebmail. 登入時出現 Couldn't update index db db /home/user  (閱讀 4734 次)

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

ayakouji

  • 可愛的小學生
  • *
  • 文章數: 3
    • 檢視個人資料
大家好.
目前我有 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

希望前輩們能幫幫忙看如何解決才好.
還有需要看什麼設定檔, 請跟我說, 謝謝!!
« 上次編輯: 2010-05-10 22:08 由 ayakouji »

kenduest

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3675
    • 檢視個人資料
    • http://kenduest.sayya.org

請先確定有啟動 nfslock 等服務。
I am kenduest - 小州

my website: http://kenduest.sayya.org/

jaymsa

  • 活潑的大學生
  • ***
  • 文章數: 409
  • 性別: 男
    • 檢視個人資料
    • Jay's Blog
大家好.
目前我有 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測試看看!!
Linux真好玩...博大精深!!
RHCE,ISO27001,ISO20000
http://jayclub.no-ip.org/jayblog

ayakouji

  • 可愛的小學生
  • *
  • 文章數: 3
    • 檢視個人資料
感謝二位的回應.

首先 ./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 了, 感謝您!!
« 上次編輯: 2010-05-11 14:06 由 ayakouji »

kenduest

  • 酷!學園 學長們
  • 俺是博士!
  • *****
  • 文章數: 3675
    • 檢視個人資料
    • http://kenduest.sayya.org

ubuntu ? 確認 nfs-common 有無正確啟動.
I am kenduest - 小州

my website: http://kenduest.sayya.org/

ayakouji

  • 可愛的小學生
  • *
  • 文章數: 3
    • 檢視個人資料
問題已解決!!

原本在 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