Linux系統中安裝配置Samba伺服器的步驟詳解
一、獲取原始碼包並進行解壓
從samba的XX可以下載最新的samba原始碼包。下面我們以的原始碼包作為案例進行解析。本例中,我們將原始碼包放在目錄/home/samba下,然後執行下面的命令進行解壓縮。
程式碼如下:
# tar –xzvf
二、配置configure
對原始碼包進行解壓縮後,進入目錄
程式碼如下:
# cd /home/samba/samba-3.5.9/source3
然後執行下面的命令進行配置。
程式碼如下:
# ./configure
可能在剛開始時,該目錄下沒有configure檔案,此時可先執行下面的命令
程式碼如下:
# ./autogen-sh
此時要求系統安裝了autoconf、automake等工具。
在執行上面的配置命令之前,我們可以通過命令
程式碼如下:
# ./configure –-help
來檢視配置命令的一些選項。
三、生成與安裝make && make install
在環境配置命令./configure成功執行後,可以執行命令
程式碼如下:
# make
來生成二進位制可執行檔案,這可能需要兩到三分鐘。成功生成可執行檔案後,可以通過下面命令
程式碼如下:
#make install
來進行安裝。系統預設的安裝路徑是/usr/local/samba
四、配置動態連結庫路徑
安裝完成後,我們需要配置動態連結庫路徑,因為執行samba的進行smbd和nmbd需要到目錄/usr/local/samba/lib下的動態連結庫檔案。但是該目錄不是系統預設的動態連結庫檔案搜尋路徑,於是我們需要將該目錄新增到檔案中。執行下面的命令
程式碼如下:
# vi /etc/
開啟檔案,並在該檔案中加入下面這一行內容。
程式碼如下:
/usr/local/samba/lib
然後執行命令
程式碼如下:
# ldconfig
來更新動態連結庫緩衝。
五、samba配置檔案
samba在執行過程中需要用到配置檔案。配置檔案是samba最重要的配置檔案,該檔案定義了samba的安全機制、檔案分享和列印共享的目錄和引數以及其他一些系統配置功能。
配置檔案的預設路徑是/usr/local/samba/lib/,我們可以在執行smbd程序時,通過-s選項來執行特定的檔案(具體說明見下一節),一般不推薦使用-s選項,因為其配置工具,如smbclient、testparm等預設都是讀取/usr/local/samba/lib/檔案。下面我們以一個簡單的配置檔案進行說明,其路徑為/etc/samba/。
程式碼如下:
[global]
workgroup = MYGROUP
server string = Samba Server %v
security = user
log file = /var/log/samba/%
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兩個檔案分享服務。關於上面這個配置檔案的具體細節,我們這裡不做詳細的論述。這裡主要說明的一點:在samba 3.0.23版本以前驗證使用者密碼的預設backend是smbpasswd,而3.0.23版本之後的預設backend是tdbsam。我們可以通過引數passdb backend來選擇特定的backend。在使用smbpasswd時預設讀取的密碼檔案時/usr/local/samba/private/smbpasswd,我們可以通過smb passwd file來指定特定的密碼檔案。
在配置完檔案後,我們可以執行testparm(目錄/usr/local/samba/lib下)命令來對檔案進行語法檢查,其會檢測出哪些引數名無法識別等問題。
六、啟動samba
samba有兩個主要的程序smbd和nmbd。smbd程序提供了檔案和列印服務,而nmbd則提供了NetBIOS名稱服務和瀏覽支援,幫助SMB客戶定位伺服器,處理所有基於UDP的協議。
配置檔案後,在開始執行samba的服務程序之前。我們需要先做一些準備工作。執行smbpasswd命令(在目錄/usr/local/samba/bin下)
程式碼如下:
# ./smbpasswd –a root
向檔案中指定的/etc/samba/smbpasswd檔案中新增root使用者以及密碼資訊。關於smbpasswd檔案的詳細內容介紹見相關文件。
然後執行命令
程式碼如下:
# service iptables stop
關閉防火牆,因為防火牆可能會阻止使用者訪問該機器。下面是執行samba的服務程序smbd和nmbd
程式碼如下:
# /usr/local/samba/sbin/smbd –D –s /etc/samba/
# /usr/local/samba/sbin/nmbd –D –s /etc/samba/
上面的-D選項指定smbd和nmbd以守護程序的方式啟動,並且通過-s選項指定了特定的配置檔案/etc/samba/。以守護程序方式啟動smbd和nmbd的優勢是響應速度快,但是要關閉的話只能kill掉。當然我們可以通過指令碼來執行這些操作,這裡就不提供指令碼了。
七、smbclient進行測試檢查
在啟動samba之後,我們可以在本機使用smbclient(目錄/usr/local/samba/bin下)來進行測試。下面命令
程式碼如下:
# cd /usr/local/samba/bin
# ./smbclient –L //
可以列出本samba伺服器所提供的服務列表,本例執行結果如下:
程式碼如下:
[root@localhost bin]# ./smbclient –L //
Enter root’s password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.5.9]
< p> Sharename Type Comment
--------- ------- -------
IPC$ IPC IPC Service (Samba Server 3.5.9)
public Disk
root Disk
< p>Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.5.9]
< p> Server Comment
----------- -------
LOCALHOST Samba Server 3.5.9
Workgroup Master
------------ -------
MYGROUP LOCALHOST
當然也可以通過smbclient來訪問samba伺服器提供的服務,其命令格式如下:
程式碼如下:
# ./smbclient “//serverAdderss/aservice” –U username
其中serverAddress是要訪問的samba伺服器的IP地址,aservice指定samba伺服器上提供的某個服務名稱,選項-U username指定要以哪個使用者名稱來訪問samba伺服器。例如
程式碼如下:
[root@localhost bin]# ./smbclient “//” –U root
Enter root’s password: ; #這裡輸入samba使用者root的密碼
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.5.9]
smb: > ; #訪問成功,輸入相關命令進行操作
上面個smb: >表明了訪問成功,此時我們可以輸入一些命令來在samba伺服器上進行操作,比如ls、mkdir等。q或quit命令執行退出,並斷開連線。
八、在Windows客戶端訪問samba伺服器
在Windows客戶端,可以在網路上的芳鄰中通過新建網路上的芳鄰來訪問,或者在【開始】——【執行】中輸入root來訪問samba伺服器上面提供的root服務。
九、重要選項說明
全域性選項:
全域性選項用於[global]的
選項定義中,其用於說明samba伺服器的一些基本屬性。其有些選項可以被其他中的選項定義覆蓋。 workgroup = MYGROUP
定義samba伺服器所在的工作組或者域(如果設定security = domain的話)。
server string = Samba server
設定samba伺服器的描述,通過網路鄰居訪問時可在備註中檢視到該描述資訊。
hosts allow = host (subnet)
設定允許訪問該samba伺服器的主機IP或網路,該選項的值為列表型別,不同的專案之間使用空格或逗號隔開,例如hosts allow = , ,該選項設定允許主機以及子網內的所有主機訪問該samba伺服器。
hosts deny = host (subnet)
設定不允許訪問該samba伺服器的主機IP或網路,其格式與hosts allow一樣。
guest account = guest
設定了遊客的賬號,在遊客訪問guest ok = yes的共享服務時,samba伺服器將設定客戶端以該遊客賬號來訪問共享。
log file = MYLOGFILE
設定記錄檔案的位置。
max log size = size
設定記錄檔案的大小,單位為KB,如果設定為0則表示無大小限制。
security =
設定samba伺服器的安全級,其有四種安全級別:share、user、server和domain,預設為user。關於這四種安全級別的詳細資訊,請檢視相關文件。
password server = ServerIP
設定了使用者賬號認證伺服器IP,其在設定security = server時有效。
encrypt passwords = yes | no
設定是否對密碼進行加密。如果不對密碼進行加密的.話,在認證會話期間,客戶端與伺服器傳遞的是明文密碼。但有些Windows系統預設情況下,不支援明文密碼傳輸。
passdb backend = smbpasswd | tdbsam | ldapsam
設定samba伺服器訪問和儲存samba使用者賬號的後端,在samba-3.0。23之前的預設值為smbpasswd,而之後的預設值為tdbsam。
smb passwd file =
設定samba的使用者賬號檔案。對於原始碼安裝的samba,在samba-3.0.23之前,其預設值為/user/local/samba/private/smbpasswd;而samba-3.0.23之後,其預設值為/usr/local/samba/private/。
include = smbconfFile
通過include選項可以包含其他配置檔案,通過該選項和一些samba定義的變數可以設定與不同機器相關的配置。
local master = yes | no
設定該samba伺服器是否試圖成為本地主瀏覽器,預設值為yes。若設定為no,則該samba伺服器永遠不可能成為本地主瀏覽器,而設定為yes不代表其一定能成為本地主瀏覽器,只是讓其能參與本地主瀏覽器的選舉。
os level = N
N是一個整數,設定了該samba伺服器參加本地主瀏覽器選舉時的權重,其值越大,權重越大。os level = 0時,該伺服器將失去選舉的機會。
domain master = yes | no
設定samba伺服器成為域瀏覽器。域瀏覽器從各個本地主瀏覽器處獲取瀏覽列表,並將整個域的瀏覽列表傳遞給各個本地主瀏覽器。
preferred master = yes | no
設定該samba伺服器是否為工作組裡的首要主瀏覽器,如果設定為yes,則在nmbd啟動時,將強制一個瀏覽選擇。
區域性選項:
區域性選項為除了global外的各個
中的引數。其定義了共享服務的屬性。 comment =
設定共享服務的描述資訊。
path =
設定共享服務的路徑,其中可以結合samba預定義的變數來設定。
hosts allow = host(subnet)
hosts deny = host(subnet)
與全域性的hosts allow和hosts deny含義相同,其會覆蓋全域性的設定。
read only = yes | no
設定該共享服務是否為只讀,該選項有一個同義選項writeable。
user = user(@group)
設定所有可能使用該共享服務的使用者,可以使用@group來設定群組group中的所有使用者賬號。該選項的值為列表,不同的專案之間使用空格或逗號隔開。在設定security = share時,客戶端要訪問某共享服務時提供的密碼會與該選項指定的所有使用者進行一一配對認證,若某使用者認證通過,則以該使用者許可權進行共享服務訪問,否則拒絕客戶端的訪問(設定security = share不是允許遊客訪問,只有guest ok = yes才是允許遊客訪問,切記!!!)。
valid users = user(@group)
設定能夠使用該共享服務的使用者和組,其值的格式與user選項一樣。
invalid users = user(@group)
設定不能夠使用該共享服務的使用者和組,其值的格式與user選項一樣。
read list = user(@group)
設定對該共享服務只有讀取許可權的使用者和組,其值的格式與user選項一樣。
write list = user(@group)
設定對該共享服務擁有讀寫許可權的使用者和組,其值的格式與user選項一樣。
admin list = user(@group)
設定對該共享服務擁有管理許可權的使用者和組,其值的格式與user選項一樣。
public = yes | no
設定該共享服務是否能夠被遊客訪問,其同義選項有guest ok。
create mode = mode
mode為八進位制值,如0755,其預設值為0744。該選項指定的值用於過濾新建檔案的訪問許可權,新建檔案的預設許可權將與create mode指定的值進行按位與操作,將結果再與force create mode指定的值進行按位或操作,得到的結果即為新建檔案的訪問許可權。
force create mode = mode
mode為八進位制值,預設為0000。其作用參考選項create mode。
directory mode = mode
mode為八進位制值,預設為0755。該選項指定的值用於過濾新建目錄的訪問許可權,新建目錄的預設許可權將與directory mode指定的值進行按位與操作,將結果再與force directory mode指定的值進行按位或操作,得到的結果即為新建目錄的訪問許可權。
force directory mode = mode
mode為八進位制值,預設為0000。該選項的作用參考選項directory mode。
force user = user
強制設定新建檔案的屬性onwer。若存在一個目錄,其允許guest可以寫,則guest就可以刪除。但設定force user為其他使用者,並設定create mode = 0755,則gues使用者不能夠刪除其新建檔案。
上面只是簡單的介紹了一些重要的選項,並且沒有討論有關[printers]的選項說明,更多選項請man 進行查閱。