歡迎您光臨本站 註冊首頁

samba安裝設置

←手機掃碼閱讀     火星人 @ 2014-03-29 , reply:0

Solaris與Windows的網路互聯
——Samba的應用
引言: 1
一、前置知識 1
二、SAMBA在SOLARIS8上的安裝與配置 2
三、啟動SOLARIS 8系統的SAMBA 服務 3
四、SAMBA服務系統的管理和配置工具 4
五、WEB頁面管理配置工具SWAT 5
六.從WINDOWS端訪問SAMBA伺服器 6
七.前景展望: 6
附:SAMBA參數參考目錄 6

引言:
如今的操作系統市場,幾乎是Unix與 Windows割據天下。一個侵佔了絕對的伺服器市場,而另一個卻幾乎吞噬了整個桌面市場。經常有人抱怨如今的文件系統,網路的異構,使不同的系統之間的訪問變得困難,需要引入一門通用的「語言」來解釋異構系統之間的通訊。本文主要介紹了Samba for Solaris的使用,實現了UNIX與windows的文件共享和列印共享,你可以在本地的windows系統上的網路鄰居來訪問Solaris上的文件,列印共享,您甚至還可以影射網路驅動器,這就如同使用本地磁碟一樣方便。而且利用Unix的強大的訪問控制,你可以對不同的共享目錄許可權設置,不用擔心有人會刪除你的文檔,而您自己卻可以自由操作。
【關鍵字】 Samba伺服器 共享 SMB SWAT 服務進程 異構網路互聯
一、前置知識
首先,我們先來介紹下什麼是Samba,我們看看Samba組織的目標——Opening Windows To A Wider World。熟悉Linux的用戶可能常常在Linux上安裝Samba服務來實現與Windows系統的文件共享和印表機共享。他們之間的數據傳輸使用SMB(Service Message Block)協議.這是一個在傳輸層之上的協議,所以他可以支持很多不同異構系統的網路互聯(比如,Linux,Solaris,Windows等),Samba之所以能夠工作,因為SMB協議模仿了Windows內核的文件和列印共享協議。微軟已經將SMB改名為公共網際網路文件系統(CIFS,Common Internet File System ),並打算把它設計為Internet的標準協議。這在一定程度上是由於它想與最初的基於NetBIOS的SMB保持一定的距離。NetBIOS是Windows 網路的一個偉大的工具,Microsoft使用NetBIOS實現了一個網路文件/列印服務系統,但是為LAN設計的它卻註定了不能路由。
Samba執行了SMB/CIFS的一個版本,這個版本在很大程度上與大多數的Windows版本兼容。但是,無論是從Windows連接到Linux還是從Linux連接到Windows機器,Samba系統對於實現文件和列印服務來說總是很穩定的。我們可以通過Windows的網路鄰居來輕鬆訪問安裝了Samba的UNIX/LINUX伺服器。(更多的文檔見www.samba.org )
二、Samba在solaris8上的安裝與配置
1.系統先要打上較新的EIS,然後到www.sunfreeware.com下載需要的軟體包,如下:
libiconv-1.8-sol8-sparc-local.gz
ncurses-5.4-sol8-sparc-local.gz
libgcc-3.3-sol8-sparc-local.gz
readline-5.0-sol8-sparc-local.gz
popt-1.7-sol8-sparc-local.gz
samba-3.0.10-sol8-sparc-local.gz
前面5個軟體包在安裝samba之前要裝上,用以下命令解壓並安裝samba軟體包;
#gunzip samba-3.0.10-sol8-sparc-local.gz
#pkgadd ?d samba-3.0.10-sol8-sparc-local
安裝完畢后,我們到/usr/local下可以看到安裝的軟體包samba目錄。
2.配置相關文件
samba的配置文件是/usr/local/samba/lib/smb.conf文件,這個文件需要自己創建,安裝后是不存在。可以根據您的需要通過配置它相關的參數來實現複雜或簡單的訪問控制。smb.conf的格式是有多個段,每段由段名開始,一直到下個段名,每個段名放在方括弧中間,下面給出個smb.conf文件例子。
#more /usr/local/samba/lib/smb.conf
[global]
workgroup = UEC
netbios name = UEC-server
server string = Samba Server
log file = /usr/local/samba/var/log.%m
security = user
guest account = guest
[gcp docs]
comment = this is shared gcp docs
path = /gcp
guest ok = yes
read only = no
browseable = yes
[john docs]
comment = this is shared john docs
path = /john
guest ok = yes
read only = no
[global]段是全局變數,它設置了工作組,NetBIOS名,安全參數security等參數,除了[global]段外,所有的段都可以看作是一個共享資源,段名是該共享資源的名字,而段里的參數就是共享資源的屬性。[gcp docs] 和[john docs]就是共享的目錄,它的參數可以設置共享目錄路徑和訪問控制許可權等。(詳細參數見附錄)
三、啟動Solaris 8系統的Samba 服務
在安裝完軟體包后,我們把/usr/local/samba/sbin 下面的3個應用程序,nmbd,smbd,winbindd複製到/usr/local/samba/bin下面去。
samba server服務是 由3個守護進程組成,
nmbd—Netbios名稱伺服器,該進程使用UDP協議提供Netbios名稱服務和瀏覽支持,處理命名註冊和決策請求。該進程應當是被首先啟動。
smbd —SMB伺服器,使用TCP協議給SMB客戶提供文件和列印服務;應當在nmbd進程后立即啟動。
Winbindd—當Samba伺服器是windows NT 或 ADS域中的成員時,此時當啟動該守護進程。
通常在修改了配置文件smb.conf后,我們需要從新啟動這3個進程,以便參數的設置起效.
下面配置下到自動啟動腳本,我們可以自己寫個啟動的腳本,加入這3個進程(注意啟動的先後順序),其實samba安裝完有個example的啟動的腳本,我們只要做些修改就可以了。
#cp /usr/local/samba/doc/samba/examples/svr4-startup/samba.server /etc/init.d/samba.server
#Vi /etc/init.d/samba.server
把默認的兩行/opt/samba/bin/smbd -D -s/opt/samba/smb.conf
/opt/samba/bin/nmbd -D -l/opt/samba/log -s/opt/samba/smb.conf
改為三行
/usr/local/samba/sbin/smbd -D -s/usr/local/samba/lib/smb.conf
/usr/local/samba/sbin/nmbd ?D -l/var/adm/samba.log -s/usr/local/samba/lib/smb.conf
/usr/local/samba/sbin/winbindd
#cd /etc/rc2.d
# ln -s /etc/init.d/samba.server S99samba.server(把它Link到啟動目錄裡面)
這樣Samba服務進程就會隨著系統的啟動而自動啟動了。
四、samba服務系統的管理和配置工具
除此之外,Samba還提供了幾個實用的組件(位於/usr/local/samba/bin目錄下面):
smbclient, SMB客戶程序,用來存取SMB伺服器上的共享資源;
testprns 測試伺服器上印表機訪問的程序;
testparms 測試Samba配置文件的正確性的工具;
smbstatus 這個工具可以列出當前Samba伺服器上的連接;
smbtree 這個工具來顯示共享目錄樹形結構。
smbpasswd 這個工具用來設定用戶密碼;
swat samba的Web管理工具;
這些工具其實都是非常有用的,通過他們我們可以更好的管理配置samba伺服器。
下面通過例子做介紹
#cd /usr/local/samba/bin
#testparms
測試參數的設置格式,屬性是否正確。
#smbstatus
Samba version 3.0.10
PID Username Group Machine
-------------------------------------------------------------------
2502 root UEC uec-gcp (192.168.1.2)
Service pid machine Connected at
-------------------------------------------------------
IPC$ 2502 uec-gcp Mon Sep 12 13:11:31 2005
John docs 2502 uec-gcp Mon Sep 12 12:59:01 2005
gcp docs 2502 uec-gcp Mon Sep 12 12:58:54 2005
No locked files
#smbpasswd ?a username
添加訪問的共享資源的用戶,一般用戶也可以訪問SWAT,但只有查看狀態的許可權。
# smbtree
Password:
WORKGROUP
\\SUN440EN Samba 3.0.10
\\SUN440EN\ADMIN$ IPC Service (Samba 3.0.10)
\\SUN440EN\IPC$ IPC Service (Samba 3.0.10)
\\SUN440EN\john docs
\\SUN440EN\gcp docs
#smbclient -L yourhostname.
顯示了samba server 上的共享資源。
Samba伺服器是如何利用SMB/CIFS協議模仿Windows的NetBIOS協議的呢?
表4—1,描述了具體的服務和埠使用。
埠 服務描述與使用的進程
137 Used for NetBIOS network browsing (nmbd)
138 Used for NetBIOS name service(nmbd )
139 Used for file and printer sharing and other operations(smbd)
445 Used by Windows 2000/XP when NetBIOS over TCP/IP is disabled
901 Used by SWAT (SWAT管理工具)
表4-1 服務埠描述
五、web頁面管理配置工具swat
把swat單獨提出來說明,是因為它是GUI的WEB頁面管理方式,而且提供了幾乎所有的參數配置,狀態查看等功能。默認的SWAT進程是沒有啟動的,我們把它加入inet.d守護進程.
#Vi /etc/services
加一句 swat 901/tcp
#vi /etc/inetd.conf
加一句 swat stream tcp nowait.400 root /usr/local/samba/bin/swat swat
這樣后重新啟動/usr/sbin/inetd 守護進程,這裡的Swat使用了TCP901埠監聽,在瀏覽輸入:http://x.x.x.x:901 進入web管理頁面。當然我們要在獲得許可權后才能進去設置。如圖5-1:

圖5-1 swat管理頁面
這個頁面管理工具可以配置幾乎所有的Samba參數,提高了Samba的使用便捷性和易用性。在首頁它還提供了命令和參數的幫助文檔手冊。
六.從Windows端訪問Samba伺服器
把Samba配置成為文檔伺服器以後,就可以從windows的網上鄰居訪問它了,當然了要配置Client和Server在同個區域網段和工作組,在輸入用戶和密碼我們就可以訪問共享的文檔和印表機了,同時我們可以把我們需要的個人共享目錄配置成為網路驅動器,在網路連接的情況下,如同操縱本地磁碟一樣。注意,有時候並不能在網路鄰居裡面看到Samba伺服器,可能Samba的兼容性問題,這時候通過網路鄰居搜索計算機也可以訪問到Samba伺服器。這比通過FTP訪問和NFS訪問簡便的多。我們也可以通過在Windows上建立FTP,WWW伺服器而把文件放在Samba伺服器上面,這樣也解決了SMB協議不能路由的缺點。
七.前景展望:
最新的SOLARIS 9已經集成了SAMBA的軟體包,這讓Samba的使用越來越容易,同時也看到Solaris與Windows互聯的迫切性。Samba系統的真正目的在於幫助簡化混合操作系統環境中所存在的挑戰。對於大企業來說,在共享文件和共享列印的訪問方面存在巨大挑戰,而Samba系統的目的在於改變這種現象。而且UNIX可以通過SMB協議加入現有的Windows域。實現更複雜的網路管理。這也在一定程度上提供了UNIX進入桌面市場的機遇。而且Samba支持多種平台的版本,這為異構系統與Windows的兼容提供了解決方案。Samba Server 也可以完全取代 NT/2000 PDC(Primary Domain Controller)成為 NT/2000 主域控制器,當然,Samba 也可以將目錄、檔案分享給其它 Mac、OS/2 的機器使用,應用層面可以說是相當廣闊。Samba 最大的功用除了做 file Server 外,還可以做 WINS Server。Wins Server最大的好處是可在 NT/2000 域內做名稱解析。相信有Microsoft的力挺,SMB/CIFS將會在未來的Internet中大放異彩。
附:samba參數參考目錄
一.全局參數
1. 基本參數
workgroup
說明:這個參數用來指定samba所要加入的工作組,另外如果在設置了security=domain,則workgroup可以指定域名。例如:
workgroup = UEC
指明工作組為UEC
netbios name
說明:這個參數指定samba的NetBIOS名,可以不設置,samba將會使用機器的DNS名的第一部分,如果你的機器的DNS名是host1.domain,就用host1。
例如:
netbios name = GCP
指定NetBios名為GCP
server string
說明:這個參數指定在瀏覽列表裡的機器描述,和MS WINDOWS 里配置網路時的描述是一樣的。可以是任何字元串。也可以不填,samba會用預設的 samba %v,即samba 尾隨它的版本號,不過如果要模仿NT象一點的話,可以填一下。例如:
server string = UEC File Server
2. 安全參數
security
說明:這是個重要的安全配置參數,有4個值,分別是share、user、server和domain,定義了samba的基本安全級,通常是 user
security = user
這是samba的默認配置,這種情況下要求用戶在訪問共享資源之前資源必須先提供用戶名和密碼進行驗證。
securtiy = share
這是幾乎沒有安全性的級別,任何用戶都可以不要用戶名和口令訪問伺服器上的資源。
security = server
和user安全級類似,但用戶名和密碼是遞交到另外一個SMB伺服器去驗證,比如遞交給一台NT伺服器。如果遞交失敗,就退到user安全級,從用戶端看來,server和user這兩個級別是沒什麼分別的。
security = domain
這種安全級別要求網路上存在一台NT PDC,samba把用戶名和密碼遞交給NT PDC去驗證。
從用戶端看來,user級以上的安全級其實是沒什麼分別的,只是伺服器驗證的方式不同,但這三種安全級都要求用戶在本Linux機器上也要系統帳戶。否則是不能訪問的。
encrypt passwords
說明:是否對密碼進行加密,samba本身可以維護一個密碼文件/etc/smbpasswd,如果不對密碼進行加密則在驗證會話期間客戶機和伺服器之間傳遞的是明文密碼,samba直接把這個密碼和Linux里的/etc/passwd密碼文件進行驗證。一般samba的應用基本都設定為yes:encrypt passwords = yes。
username map
說明:這個參數可以讓你指定一個文件包含來自客戶機的用戶名與Linux系統用戶名之間的映射,文件的格式是每行一個映射,映射的格式是:Linux usename = client username … 。
例如 root = admin adminstrator
這樣,當客戶機的用戶是admin或administrator時,就被轉換成root。
這個功能對用戶管理很方便,可以讓管理員不需要對客戶或伺服器上的用戶帳號大動干戈。
文件名通常用默認的/et/smbusers
password level
說明:這是針對一些SMB客戶像Windows for Workgroup、OS/2之類而設的,像WFW這樣的系統在發送用戶密碼的時候,會把密碼轉換成大寫再發送,這樣就和samba的密碼不一致,這個參數可以設定密碼里允許的大寫字母個數,這樣samba就根據這個數目對接收到的密碼進行大小寫重組,以重組過的密碼嘗試驗證密碼的正確性。這個值越大,組合的次數就越多,驗證時間就越長,安全性也越低!
guest account
說明:這個參數指定guest級帳戶的用戶名,可以是nobody、ftp,guest級別的用戶可以不要密碼就訪問給定的guest服務。
host allow
說明:這個參數指定那些機器可以訪問samba,例如:host allow = 192.168.1. 127.
指定192.168.1.0里的所有機器都可以訪問。
如果不允許子網裡的一台機器訪問,可以這樣設:host allow = 192.168.1. EXCEPT 192.168.1.33
禁止192.168.1.33訪問
host deny
說明:和host allow 相反是指定那些機器不能訪問,格式一樣。
3.日誌記錄參數
log file
說明:這個參數指定日誌文件的名稱,路徑一般放在/var/log/samba,可以在文件名后加個宏%m表示對每台訪問samba的機器都單獨記錄一個日誌文件。
例如: log file = /var/log/samba/log.%m,
如果host1、host2這台機器訪問過samba,就會留下log.host1、log.host2這兩個日誌文件。
max log size
說明:這個參數指定最大日誌文件的大小,以KB為單位。
例如: max log size = 50k
4.協議參數
announce version
說明:指定伺服器的宣告版本號,默認是4.2,如果在WINDOWS的網上鄰居里查看samba伺服器的屬性,就可以看見在類型一行里有 Windows NT 4.2 Server 的字樣。一般不要去更改它,如果你要讓samba模擬NT像一點的話,可以改成4.0。
5. 計算機瀏覽參數
os level
說明:os level 的值是個整數,決定了nmbd是否有機會成為本地廣播區域的工作組裡的本地主瀏覽器,默認值是零,零則意味著nmbd失去瀏覽選擇。如果要nmbd更有機會成為本地主瀏覽器的話,可以設為65。
preferred master
說明:這個參數指定nmbd是否是工作組裡的首要的主瀏覽器,如果指定為yes,nmbd在啟動的時候就強制一個瀏覽選擇。指定該參數為yes時最好把domain master 也指定為yes。用這個參數的時候要注意的是在samba伺服器所在的子網上如果有其它的機器(不管是WINDOWS NT還是另一個samba伺服器)也指定為首要的主瀏覽器時,這些機器都會因為爭奪主瀏覽器而在網路上廣播,引起不必要的網路性能下降。
local master
說明:這個參數指定nmbd是否試圖成為本地主瀏覽器,默認值是yes,如果設為no則samba伺服器就永遠都不會成為本地主瀏覽器。但即使設置了yes,也不等於samba伺服器就會成為本地主瀏覽器。只是參與本地主瀏覽器選擇。
domain master
說明:這個參數讓nmbd成為一個域瀏覽器,取得各本地主瀏覽器的瀏覽列表,並將整個域的瀏覽列表遞交給各本地主瀏覽器。默認值是no。如果網路上已經有一台NT PDC,就不要把這個參數設為yes,爭不過NT PDC的。
另外,如果你對計算機瀏覽服務不是很清楚的話,可以參考NT網路管理資料。
6. 共享資源設置參數
comment
說明:就是對共享的描述,可以是任意的字元串
例如:comment = Share Stuff 。
path
說明: path是提供共享服務的路徑,可以用%u %m這樣的宏來代替路徑里的unix用戶和客戶機的Netbios名。
例如:如果我們不打算用home段做為客戶的共享,而是在/home/share/ 下為每個Linux用戶以他的用戶名建個目錄,作為他的共享目錄,這樣path就可以寫成:path = /home/share/%u; 。
用戶在連接到這共享時具體的路徑會被他的用戶名代替,要注意這個用戶名路徑一定要存在,否則,客戶機在訪問時會找不到網路路徑。同樣,如果我們不是以用戶來劃分目錄,而是以客戶機來劃分目錄,為網路上每台可以訪問samba的機器都各自建個以它的netbios名的路徑,作為不同機器的共享資源,可以這樣寫path:path = /home/share/%m 。
writeable
說明:指定共享路徑是否可以寫,值是yes或no
browseable
說明:指定共享是否可以瀏覽,默認是yes
available
說明:指定共享資源是否可用,默認是yes,設為no則關閉該資源的共享服務,用戶無法連接到該資源上。
exec 和 postexec
root preexec 和 root postexec
說明:指定在用戶與共享資源在連接和斷開時在伺服器上執行一個命令,這兩對參數很有用,區別是root preexec 和root preexec 是以root的許可權運行。
列印共享還有些專用的列印參數,闡述如下:
load printers
指定在samba啟動時是否自動把printcap文件里的所有印表機載入,從而可以在瀏覽清單里看到所有的印表機,默認是yes
printable
指定用戶能不能列印,默認是no,要讓一個列印共享可以讓用戶使用,必須設為yes
print name
印表機名
printer driver
印表機的驅動類型,這個參數可以讓WINDOWS知道遠程印表機上的類型,具體的值可以參考在WINDOWS里安裝印表機出現選擇印表機類型時的印表機類型。比如Espon LQ1600K印表機:
printer driver = Espon LQ-1600K
以上就是samba的一些常用的配置,通過這些配置參數,我們已經可以建立起一個一般應用的文件伺服器。雖然還有很多參數沒有提到,但samba本身可以用預設值。
啟動samba,可以用/usr/sbin/samba start來啟動samba,也可以用ntsysv來啟動。
二、samba 高級參數
下列所介紹的是一些高級參數的配置,這些參數如果應用得當,可以更加靈活地在網路上應用samba
1.宏
在基本配置里有提到一些參數的可以尾隨%u、%m,這是samba里定義的宏,宏用百分號後面跟一字元表示,在具體運作的時候就用實際的參數來代替。常用的宏有
%S = 當前服務名
%P = 當前服務的根路徑
%u = 當前服務的用戶名
%g = 給定%u的所在的主工作組名
%H = 給定的%u的宿主目錄
%v = Samba 版本號
%h = 運行Samba的機器的主機名
%m = 客戶機的NETBIOS名
%L = 伺服器的 NetBIOS 名
%T = 當前的日期和時間
靈活地應用宏可以很方便地管理比較複雜的網路。
2.一些常用高級配置參數
2.1 全局參數
config file
說明:這個參數是全局參數,可以讓你用另一個配置文件覆蓋預設的配置文件,如果文件不存在,該項無效。這個參數非常有用,也使得samba的配置更靈活,讓一台Linux伺服器模擬多台不同配置的NT 伺服器,滿足不同的需求。
比如,您想讓網路上的某台名字是host1的機器用它自己的配置文件,先在/etc/下為host1配置一個名為smb.conf.host1的文件,在預設的smb.conf里加這行:
config file = /etc/smb.conf.%m
這樣,當host1請求連接的時候,smb.conf.%m被替換成smb.conf.host1,對host1來說,它所看到的samba就是由smb.conf.host1定義的。而其它機器還是用smb.conf。
deadtime
說明:這個參數值是個整數,單位是分鐘,用於切斷一個不活動的連接。當一個沒有打開任何文件的連接的不活動的時間超過datetime指定的的時間后,samba就自動切斷這個連接。這個參數可以節省伺服器的資源消耗,尤其是在有大量連接的情況下。默認的值是零,零代表samba不自動切斷任何連接。
time server
說明:這個參數讓nmbd成為WINDOS客戶的時間伺服器。默認是no。
2.2 共享資源參數
admin users
這個參數用來賦予用戶對共享資源的管理員許可權,意味著這些用戶可以root一樣進行所有的文件操作,當然只局限在這個共享資源上。這個選項要慎用,因為任何這樣的用戶可以對該共享上的文件隨意進行操作。預設是admin users = no。
例如:
admin users = Su_27
那麼Su_27這個用戶就是這個共享資源的管理員。
valid users
說明:指定共享資源的有效用戶,即允許訪問該資源的用戶。
例如:valid users = user1, user2
那麼user1和user2是有效用戶
invalid users
說明:和valid users 相反,指定那些用戶不可訪問這共享資源。
max connections (S)
說明:指定一個服務的最大連接數目,用戶連接到該服務時如這個服務的連接數目已經達到指定值,這個新的連接請求將被拒絕。
例如: max connections = 100
最大連接數為100
以上是一些samba的高級配置參數,但samba的參數還有很多,如文件創建許可權設定,代碼頁,文件名大小寫是否敏感等,可以參考samba的官方文檔。

[火星人 ] samba安裝設置已經有717次圍觀

http://coctec.com/docs/linux/show-post-203723.html