1,680 瀏覽數

RHEL5 – Samba 認識 samba 設定檔

首先檢查 samba 是否安裝,一般在光碟 /Server 目錄都可以找到 samba 的 rpm 檔案或是可以透過 yum 去下載.

[root@benjr ~]# rpm -aq | grep samba
samba
samba-common
samba-client
system-config-samba

安裝 samba 在 RedHat 光碟片中的目錄 /Server 可以找到所需的程式

[root@benjr ~]# rpm -ivh samba-common.rpm
[root@benjr ~]# rpm -ivh samba-client.rpm
[root@benjr ~]# rpm -ivh samba.rpm
[root@benjr ~]# rpm -ivh system-config-samba

檢查 samba 服務是否在開機時一並啟動

[root@benjr ~]# chkconfig smb on
[root@benjr ~]# chkconfig –list smb
smb      0:off 1:on 2:on 3:on 4:on 5:on 6:off

立即啟動 samba 服務

[root@benjr ~]# service smb start
Starting SMB services:                   [ OK ]
Starting NMB services:                   [ OK ]

RHEL 5 提供了 #system-config-samba 工具可以讓我們很方便針對 samba 做設定,不過這一隻工具主要都還是去修改 samba 的設定檔 /etc/samba/smb.conf ,所以我們先來看看 samba 的設定檔.

[root@benjr ~]# cat /etc/samba/smb.conf
#======================= Global Settings =====================================
[global]
    workgroup = mygroup
    server string = Samba Server Version %v
    netbios name = benjr
    security = user
    passdb backend = tdbsam
#======================= Share Definitions====================================
[homes]
    comment = Home Directories
    browseable = no
    writeable = yes
;    valid users = %S
;    valid users = MYDOMAIN\%S

[printers]
    comment = All Printers
    path = /var/spool/samba
    browseable = no
;    guest ok = no
;    writeable = no
    printable = yes

設定檔主要可以分成兩個區塊

  1. [global] 中主要設定整個 samba 系統的組態
    其中的 [global] 的 security 決定身份驗證要由誰處理,samba 3.X 提供了五種安全等級可設定
  2. [share] 中都是要分享的檔案目錄以及印表機

/etc/samba/ 目錄 相關的檔案

[root@benjr ~]# ll /etc/samba/
total 52
-rw-r–r– 1 root root    20 Apr  3  2008 lmhosts
-rw——- 1 root root  4096 Apr 12 06:59 passdb.tdb
-rw——- 1 root root  8192 Apr 12 06:59 secrets.tdb
-rw-r–r– 1 root root 10043 Apr 14 03:37 smb.conf
-rw-r–r– 1 root root    97 Apr  3  2008 smbusers
  1. /etc/samba/lmhosts 存放 NetBIOS name 與 IP 相對應關係
  2. /etc/samba/passdb.tdb 存放使用者登入 samba server 時所需的使用者帳號以及密碼
  3. /etc/samba/secrets.tdb 存放 samba 的密碼檔
  4. /etc/samba/smb.conf samba 的設定檔
  5. /etc/samba/smbusers UNIX name 與 samb name 相對應關係

最早的 samba 的使用者帳號密碼是存成成文字檔 /etc/samba/smbpassword ,對於較少使用者的 samba server 並不會有太大的問題,但是當使用者眾多時就會有以下的問題產生:

  1. 查詢是循序進行,所以效能將會是瓶頸.
  2. 每一台 samba server 必須自己維護 smbpasswd 檔,當有多台 samba server 帳號的同步就是問題了.
  3. smbpasswd 檔的格式限制了每個使用者可以維護的屬性.
  4. 除了可以增加效能外還可以同步多台的 samba server 帳號密碼

也因此在 RHEL5 帳號密碼皆是以資料庫的形式做儲存,這樣會較符合企業用戶的需求.除了預設的 tdbsam(.tdb) 的資料庫外 Samba 提供下面多種方式,甚至於跟 LDAP 目錄服務結合.

  1. Plain Text
  2. smbpasswd
  3. tdbsam
  4. ldapsam
  5. MySQL
  6. XML

網友的想法

  1. 自動參照通知: RHEL5 – Samba(一) 什麼是 Samba | Benjr.tw

發表迴響