一、獲取源代碼包并進(jìn)行解壓
從samba的官方網(wǎng)站可以下載最新的samba源代碼包。下面我們以samba-3.5.9.tar.gz的源代碼包作為案例進(jìn)行解析。本例中,我們將源代碼包放在目錄/home/samba下,然后執(zhí)行下面的命令進(jìn)行解壓縮。
代碼如下:
# tar –xzvf samba-3.5.9.tar.gz
二、配置configure
對(duì)源代碼包進(jìn)行解壓縮后,進(jìn)入目錄
代碼如下:
# cd /home/samba/samba-3.5.9/source3
然后執(zhí)行下面的命令進(jìn)行配置。
代碼如下:
# ./configure
可能在剛開(kāi)始時(shí),該目錄下沒(méi)有configure文件,此時(shí)可先執(zhí)行下面的命令
代碼如下:
# ./autogen-sh
此時(shí)要求系統(tǒng)安裝了autoconf、automake等工具。
在運(yùn)行上面的配置命令之前,我們可以通過(guò)命令
代碼如下:
# ./configure –-help
來(lái)查看配置命令的一些選項(xiàng)。
三、生成與安裝make && make install
在環(huán)境配置命令./configure成功執(zhí)行后,可以運(yùn)行命令
代碼如下:
# make
來(lái)生成二進(jìn)制可執(zhí)行文件,這可能需要兩到三分鐘。成功生成可執(zhí)行文件后,可以通過(guò)下面命令
代碼如下:
#make install
來(lái)進(jìn)行安裝。系統(tǒng)默認(rèn)的安裝路徑是/usr/local/samba
四、配置動(dòng)態(tài)鏈接庫(kù)路徑
安裝完成后,我們需要配置動(dòng)態(tài)鏈接庫(kù)路徑,因?yàn)檫\(yùn)行samba的進(jìn)行smbd和nmbd需要到目錄/usr/local/samba/lib下的動(dòng)態(tài)鏈接庫(kù)文件。但是該目錄不是系統(tǒng)默認(rèn)的動(dòng)態(tài)鏈接庫(kù)文件搜索路徑,于是我們需要將該目錄添加到文件ld.so.conf中。執(zhí)行下面的命令
代碼如下:
# vi /etc/ld.so.conf
打開(kāi)ld.so.conf文件,并在該文件中加入下面這一行內(nèi)容。
代碼如下:
/usr/local/samba/lib
然后執(zhí)行命令
代碼如下:
# ldconfig
來(lái)更新動(dòng)態(tài)鏈接庫(kù)緩沖。
五、samba配置文件smb.conf
samba在運(yùn)行過(guò)程中需要用到配置文件smb.conf。smb.conf配置文件是samba最重要的配置文件,該文件定義了samba的安全機(jī)制、文件共享和打印共享的目錄和參數(shù)以及其他一些系統(tǒng)配置功能。
配置文件smb.conf的默認(rèn)路徑是/usr/local/samba/lib/smb.conf,我們可以在運(yùn)行smbd進(jìn)程時(shí),通過(guò)-s選項(xiàng)來(lái)執(zhí)行特定的smb.conf文件(具體說(shuō)明見(jiàn)下一節(jié)),一般不推薦使用-s選項(xiàng),因?yàn)槠渑渲霉ぞ?,如smbclient、testparm等默認(rèn)都是讀取/usr/local/samba/lib/smb.conf文件。下面我們以一個(gè)簡(jiǎn)單的配置文件進(jìn)行說(shuō)明,其路徑為/etc/samba/smb.conf。
代碼如下:
[global]
workgroup = MYGROUP
server string = Samba Server %v
security = user
log file = /var/log/samba/%m.log
passdb backend = smbpasswd
smb passwd file = /etc/samba/smbpasswd
[root]
path = /
valid users = root
writeable = yes
[public]
path = /data
guest ok = yes
read only = yes
上面配置文件定義了root和public兩個(gè)文件共享服務(wù)。關(guān)于上面這個(gè)配置文件的具體細(xì)節(jié),我們這里不做詳細(xì)的論述。這里主要說(shuō)明的一點(diǎn):在samba 3.0.23版本以前驗(yàn)證用戶密碼的默認(rèn)backend是smbpasswd,而3.0.23版本之后的默認(rèn)backend是tdbsam。我們可以通過(guò)參數(shù)passdb backend來(lái)選擇特定的backend。在使用smbpasswd時(shí)默認(rèn)讀取的密碼文件時(shí)/usr/local/samba/private/smbpasswd,我們可以通過(guò)smb passwd file來(lái)指定特定的密碼文件。
在配置完smb.conf文件后,我們可以運(yùn)行testparm(目錄/usr/local/samba/lib下)命令來(lái)對(duì)smb.conf文件進(jìn)行語(yǔ)法檢查,其會(huì)檢測(cè)出哪些參數(shù)名無(wú)法識(shí)別等問(wèn)題。
六、啟動(dòng)samba
samba有兩個(gè)主要的進(jìn)程smbd和nmbd。smbd進(jìn)程提供了文件和打印服務(wù),而nmbd則提供了NetBIOS名稱服務(wù)和瀏覽支持,幫助SMB客戶定位服務(wù)器,處理所有基于UDP的協(xié)議。
配置smb.conf文件后,在開(kāi)始運(yùn)行samba的服務(wù)進(jìn)程之前。我們需要先做一些準(zhǔn)備工作。運(yùn)行smbpasswd命令(在目錄/usr/local/samba/bin下)
代碼如下:
# ./smbpasswd –a root
向smb.conf文件中指定的/etc/samba/smbpasswd文件中添加root用戶以及密碼信息。關(guān)于smbpasswd文件的詳細(xì)內(nèi)容介紹見(jiàn)相關(guān)文檔。
然后運(yùn)行命令
代碼如下:
# service iptables stop
關(guān)閉防火墻,因?yàn)榉阑饓赡軙?huì)阻止用戶訪問(wèn)該機(jī)器。下面是運(yùn)行samba的服務(wù)進(jìn)程smbd和nmbd
代碼如下:
# /usr/local/samba/sbin/smbd –D –s /etc/samba/smb.conf
# /usr/local/samba/sbin/nmbd –D –s /etc/samba/smb.conf