郵件系統管理--系統帳號與電子郵件帳號的整合
以Zimbra Collaboration Suite(ZCS)為例
由於SMTP的服務起步相當早, 以目前仍有廣大用戶的sendmail與postfix為例, 他們 都可直接以作業系統上的帳號作為使用者的電子郵件帳號, 這類的使用者為數仍不少. 而電子郵件伺服器的轉移過程中, 最令管理者頭痛的工作莫過於帳號/密碼的轉移 與郵件資料的轉移, 我們將先就帳號與密碼的轉移進行討論. 首先我們必須了解作業系統的帳號與密碼檔案的位置, 以常見Linux系統為例, /etc/passwd 與/etc/shadow就是我們需要的兩個檔案, 而BSD系列的作業系統則是/etc/passwd與 /etc/master.passwd. 探討其格式, 以實例說明 :
/etc/passwd範例:
root:x:0:0:root:/root:/bin/bash
/etc/shadow範例:
root:$1$pQ2Nc5i8$wuz/9RhH.MsJmr5ZfnxJd1:14253:0:99999:7:::
其次, 也必須了解到在ZCS環境中, 可以透過這樣的命令建立電子郵件帳號:
zmprov ca account@domain.name password
同時ZCS也可直接接受crypt()格式的密碼, 可透過下列命令進行設定:
zmprov ma account@domain.name userPassword '{crypt}$1$pQ2Nc5i8$wuz/9RhH.MsJmr5ZfnxJd1'
聰明的讀者應該可以了解到, 事實上我們要在新的電子郵件系統上建立帳號, 就是 需要/etc/passwd的第一個欄位, 這就是我們即將建立的電子郵件帳號, 與/etc/shadow的第二個欄位, 也就是使用者的密碼欄位. (備註 : 如果不需轉移其他資料, 例如使用者說明, 事實上只需要/etc/shadow檔案) 以直接利用/etc/shadow的檔案為例, 我們需要的步驟大致如下:
- 取得使用者帳號
- 取得使用者密碼
- 執行ZCS建立帳號命令
- 執行ZCS修改密碼命令
實際作法可用一個簡單的shell script達成:
| #!/bin/bash domain=@cellopoint.com cat /etc/shadow | while read line; do username=`echo $line | cut -d: -f1` passwd=`echo $line | cut -d: -f2` sudo -u zimbra /opt/zimbra/bin/zmprov ca $username$domain tmppasswd sudo -u zimbra /opt/zimbra/bin/zmprov ma $username$domain userPassword '{crypt}$passwd' done |
上述的例子當然還需要做些調整, 例如預先刪除部分系統帳號(例如bin, sys, lp等無用的系統帳號), 但是基本上的轉移動作就是如此, 透過ZCS所提供的文字命令(zmprov)與簡單script就可以很方便的 直接將既有在sendmail或者postfix系統中使用的作業系統帳號轉移到新的電子郵件環境.

列印此頁