Samba-3 新的使用者帳號儲存方式

The Official Samba-3 HOWTO and Reference Guide:
10. Account Information Databases

Samba-3 總共有三種使用者帳號儲存方式:smbpasswd、tdbsam 和 ldapsam。其中 smbpasswd 是之前舊的方法,也是我所使用的,是以文字檔來儲存編碼後的帳號資料,像 /etc/passwd 一樣。但這個方法有三個缺點:
  1. 因為是文字檔,所以搜尋帳號資料的時候必須要循序來找,在使用者數目一多的時候就會顯得很慢。
  2. 管理者要複製這些帳號資料到另外好幾台機器的時候,必需要手動去搬移那個檔案。
  3. 原本 smbpasswd 設計的資料儲存欄位有限,無法再增加新的資訊。
這三個理由都無法說服我轉換到 tdbsam 去。首先第一個理由,我這邊頂多不到十個人會用到這個服務,所以就算是文字檔也慢不到哪裡去。第二個,要克服這個麻煩,就要用到 ldapsam,但這個需要有 ldap 服務,因為麻煩和沒有必要性,所以我不會去架一個 ldap 服務。單純用 tdbsam 的話,還是要手動去複製那個資料庫檔案到別的機器上。第三個理由,我只需要很基本的功能,沒有必要用到新的欄位。既然三個理由都不成立,為何我要轉到 tdbsam?唯一的理由就是 smbpasswd 是 being obsoleted,所以還是早早轉換,先熟悉新的東西。

轉換的方法文件中有寫,大概就是用 pdbedit -i smbpasswd -e tdbsam 把 smbpasswd 這個檔轉成 tdb 資料庫檔,然後在 smb.conf 中註明 passdb backend = tdbsam:/etc/samba/passdb.tdb 就好。要注意的是,passdb backend 原本沒有寫在 smb.conf 中,要自己加上去,這是很奇怪的一個地方,很少看到設定檔會沒寫出重要的設定,通常都會寫出來並加注解。

Comments

Popular posts from this blog

在 en_US 的 locale 下使用輸入法

Xen: an open source virtual machine system

用 cygwin 的 rsync 遇到中文檔名時