
【軟件介紹】
Samba是在Linux和UNIX系統(tǒng)上實(shí)現(xiàn)SMB協(xié)議的一個(gè)免費(fèi)軟件,由服務(wù)器及客戶端程序構(gòu)成。SMB(Server Messages Block,信息服務(wù)塊)是一種在局域網(wǎng)上共享文件和打印機(jī)的一種通信協(xié)議,它為局域網(wǎng)內(nèi)的不同計(jì)算機(jī)之間提供文件及打印機(jī)等資源的共享服務(wù)。SMB協(xié)議是客戶機(jī)/服務(wù)器型協(xié)議,客戶機(jī)通過該協(xié)議可以訪問服務(wù)器上的共享文件系統(tǒng)、打印機(jī)及其他資源。通過設(shè)置“NetBIOS over TCP/IP”使得Samba不但能與局域網(wǎng)絡(luò)主機(jī)分享資源,還能與全世界的電腦分享資源。
【文件介紹】
配置文件在較早期的版本中, SAMBA 的設(shè)定檔都直接放置在 /etc 底下,后來的版本則將設(shè)定檔通通放置到/etc/samba 底下去了 ( 有的 distribution 放在 /etc/smb 有的則是 /etc/samba.d,請(qǐng)使用 locate 搜尋! )。在 /etc/samba 底下的幾個(gè)重要的設(shè)定檔有: /etc/samba/smb.conf:這個(gè)就是SAMBA 最主要的設(shè)定檔了!在較為簡單的設(shè)定當(dāng)中,這也是唯一的一個(gè)設(shè)定檔!此外,這個(gè)檔案本身就含有相當(dāng)豐富的說明,所以,在設(shè)定之前,請(qǐng)使用vi 好好的詳細(xì)的觀看一下這個(gè)檔案吧!這個(gè)設(shè)定檔主要的設(shè)定分為兩部份,分別是[global] 這個(gè)設(shè)定主機(jī)功能的項(xiàng)目,以及接下來的每個(gè)分享出去的目錄的屬性設(shè)定。
/etc/samba/lmhosts:這個(gè)檔案的主要目的在對(duì)應(yīng)NetBIOS name 與該主機(jī)名稱的 IP ,事實(shí)上,他有點(diǎn)像是 /etc/hosts 的功能!只不過這個(gè)lmhosts 對(duì)應(yīng)的主機(jī)名稱是 NetBIOS name 喔!不要跟 /etc/hosts 搞混了!由于目前SAMBA 的功能越來越強(qiáng)大,所以通常只要您一啟動(dòng) SAMBA 時(shí),他就能自己捉到 LAN里面的相關(guān)計(jì)算機(jī)的 NetBIOS name 對(duì)應(yīng) IP 的信息,因此,這個(gè)檔案通??梢圆挥迷O(shè)定了。
/etc/samba/smbpasswd:這個(gè)檔案預(yù)設(shè)并不存在。它是SAMBA 預(yù)設(shè)的使用者密碼對(duì)應(yīng)表。當(dāng)設(shè)定的 SAMBA 服務(wù)器是較為嚴(yán)密的,需要使用者輸入賬號(hào)與密碼后才能登入的狀態(tài)時(shí),使用者的密碼預(yù)設(shè)就是放置在這里( 當(dāng)然啰,您可以自行在 smb.conf 里面設(shè)定密碼放置的地方及密碼文件名,不過,我們這里都以預(yù)設(shè)的狀態(tài)來說明) 。比較需要注意的是,這個(gè)檔案因?yàn)榘耸褂谜叩拿艽a,所以,當(dāng)然權(quán)限方面要較為注意啦!這個(gè)檔案的擁有者需要是root ,且權(quán)限設(shè)定為 600 才行。
執(zhí)行文件
SAMBA 的執(zhí)行文件一般來說,做為 SAMBA Server 的執(zhí)行檔有 testparm,smbd, nmbd, smbpasswd,至于做為 SAMBA Client 的執(zhí)行檔主要?jiǎng)t是:smbmount,smbclient?!mbd 與nmbd:這兩個(gè)執(zhí)行檔是那兩個(gè)主要的 daemons ,每次啟動(dòng) SAMBA 都會(huì)使用到的兩個(gè)執(zhí)行檔。
testparm:當(dāng)設(shè)定完成了smb.conf 這個(gè)主要設(shè)定檔之后,而想要查看一下 SAMBA 的所有設(shè)定參數(shù)與 smb.conf的設(shè)定項(xiàng)目是否正確時(shí),就需要使用這個(gè) testparm 來查看( test parameters 的簡寫!)!所以,每次在修改完 smb.conf之后,請(qǐng)務(wù)必要使用 testparm 查看看是否有設(shè)定錯(cuò)誤。
smbpasswd:如果SAMBA 設(shè)定的較為嚴(yán)格,需要規(guī)定使用者的賬號(hào)與密碼,那么那個(gè)密碼檔案的建立就需要使用smbpasswd 來建置才可以,所以這個(gè)指令與建立 SAMBA 的密碼有關(guān)?!mbclient:當(dāng)Linux 主機(jī)想要藉由『網(wǎng)絡(luò)上的芳鄰』的功能來查看別臺(tái)計(jì)算機(jī)所分享出來的目錄與裝置時(shí),就可以使用smbclient 來查看啦!這個(gè)指令也可以使用在 SAMBA 主機(jī)上面,用來查看是否設(shè)定成功。
smbmount:在Windows 上面可以設(shè)定『網(wǎng)絡(luò)磁盤驅(qū)動(dòng)器』來連接到主機(jī)上面,同樣,在Linux 上面,可以透過 smbmount 來將遠(yuǎn)程主機(jī)分享的檔案與目錄掛載到Linux 主機(jī)上面。不過,其實(shí)也可以直接使用 mount 這個(gè)指令來進(jìn)行同樣的功能就是了。

【Samba功能介紹】
文件共享和打印共享是Samba最主要的功能。Samba為了方便文件共享和打印共享,還實(shí)現(xiàn)了相關(guān)的控制和管理功能。具體來說,Samba完成的功能有1、共享目錄:在局域網(wǎng)上共享某個(gè)或某些目錄,使得同一個(gè)網(wǎng)絡(luò)內(nèi)的Windows用戶可以在網(wǎng)上鄰居里訪問該目錄,就跟訪問網(wǎng)上鄰居里其他Windows機(jī)器一樣
2、目錄權(quán)限:決定每一個(gè)目錄可以由哪些人訪問,具有哪些訪問權(quán)限。Samba允許設(shè)置一個(gè)目錄讓一個(gè)人、某些人、組和所有人訪問
3、共享打印機(jī):在局域網(wǎng)上共享打印機(jī),使得局域網(wǎng)的其他用戶可以使用Linux操作系統(tǒng)下的打印機(jī)
4、打印機(jī)使用權(quán)限:決定哪些用戶可以使用打印機(jī)
安裝和配置好了Samba服務(wù)器后,Linux就可以向局域網(wǎng)中的Windows用戶提供文件和打印服務(wù)了

【使用教程】
Ubuntu下samba配置和使用首先需要安裝samba程序,部分Ubuntu鏡像已經(jīng)自帶;執(zhí)行如下命令即可
sudo apt-get install samba
sudo apt-get install smbclient
安裝完成后執(zhí)行
samba -V
如果可以看到版本號(hào)即為安裝成功

第二步需要配置samba服務(wù)器,使用如下命令打開samba的配置文件
sudo vi /etc/samba/smb.conf
加入配置信息
[share]
comment = share folder
browseable = yes
path = /home/zhang/share
create mask = 0777
directory mask = 0777
valid users = zhang
force user = nobody
force group = nogroup
public = yes
available = yes
這其中比較重要的參數(shù)為path和valid users, path指定了samba服務(wù)器的根目錄,可以任意指定合法路徑; valid users表示可以訪問samba服務(wù)器的合法用戶;用戶在配置時(shí)注意需要將路徑改為自己需要的路徑,切勿全盤照抄

由于在上文中配置的samba服務(wù)器根文件路徑在我的Ubuntu上還不存在,所以我需要在對(duì)應(yīng)路徑下創(chuàng)建文件夾,并修改其權(quán)限
mkdir share
chmod 777 share

接下來需要為samba服務(wù)器添加用戶了,由于我的配置中使用的是名為"zhang"的用戶(該用戶其實(shí)就是我的登錄用戶),所以我需要通過如下命令來為samba添加此用戶并設(shè)置密碼
sudo smbpasswd -a zhang

配置完成后需要重啟samba服務(wù)器,使用如下命令重啟samba服務(wù)器
sudo /etc/init.d/samba restart

接下來就可以在windows上訪問samba服務(wù)器了,通過如下的方式訪問
\\+ ip
在linux中可以通過命令 ifconfig查看ip地址
輸入地址后,我們應(yīng)該就可以看到我們之前創(chuàng)建的share文件夾了

點(diǎn)擊文件夾,系統(tǒng)會(huì)彈出一個(gè)窗口讓我們輸入用戶名和密碼,這個(gè)地方有個(gè)小坑,就是在用戶名的前面會(huì)自帶域名,如果我們?cè)趲в杏蛎那疤嵯螺斎胗脩裘?,是無法通過驗(yàn)證的,所以我們需要在用戶名前加一個(gè)'\'符號(hào)

輸入用戶名密碼后我們就進(jìn)來了,然后由于此時(shí)沒有什么文件,我們看見的是空白一片,也無法確定是否成功了;那么如何驗(yàn)證呢,很簡單,在linux上創(chuàng)建一個(gè)文件,然后在windows上刷新一下,看能否看見創(chuàng)建的文件即可,我們安裝如下的步驟來
1.在linux上使用命令創(chuàng)建一個(gè)空白的test文件并往其中寫入一定的內(nèi)容
cd /home/zhang/share
touch test.txt
2.在windows上刷新,查看是否可以看到test.txt文件且內(nèi)容與在linux中寫入的一致
如果驗(yàn)證無誤,則表明我們的samba服務(wù)器已經(jīng)成功創(chuàng)建


為了更方便地使用,我們可以將samba服務(wù)器映射到磁盤,按照如下的步驟即可將samba服務(wù)器映射到磁盤
1.打開計(jì)算機(jī)界面,點(diǎn)擊映射網(wǎng)絡(luò)驅(qū)動(dòng)選項(xiàng)
2.在文件夾選項(xiàng)中輸入對(duì)應(yīng)的路徑
3.點(diǎn)擊確定,即可在計(jì)算機(jī)界面看見映射成功的磁盤了



【權(quán)限配置】
一、有一個(gè)共享目錄為rule,里面放公司的規(guī)章制度,所有用戶都可以查看,但是不能修改,解決方法:在smb.conf里配置read only = yes,具體示例如下:
[rule]
path = /var/samba/rule
read only = yes
public = no
vaild users = theworld
二、一部分人只對(duì)file1這個(gè)目錄有權(quán)限,一部分人只對(duì)file2這個(gè)目錄有權(quán)限,解決方法:
1.首先建立兩個(gè)samba用戶user1和user2,這兩個(gè)用戶要保證是在Linux系統(tǒng)中存在的用戶,命令如下:
#smbpasswd -a user1
2.然后對(duì)目錄file1和file2設(shè)置訪問權(quán)限,讓用戶user1訪問file1,用戶user2訪問file2,命令如下:
#chown user1:user1 /var/samba/file1
#chmod 700 /var/samba/file1
3.在smb.conf中配置file1和file2的訪問權(quán)限,示例如下:
[file1]
path = /var/samba/file1
read only = no
public = no
vaild users = user1
4.在客戶端登錄samba服務(wù)的時(shí)候分配給訪問file1的用戶user1的用戶名,訪問file2的用戶user2的用戶名
三、只有user1組里的人對(duì)file1這個(gè)目錄有權(quán)限,并且user1組中用戶a有讀寫權(quán)限,而用戶b只有讀權(quán)限,解決方法:
1.首先建立兩個(gè)samba用戶a和b,這兩個(gè)用戶要保證是在linux系統(tǒng)中存在的用戶,并且在同一個(gè)用戶組user1中,創(chuàng)建方法同上
2.然后對(duì)目錄file1設(shè)置訪問權(quán)限,讓用戶組user1可以訪問file1,命令如下:
#chown user1.user1 /var/samba/file1
#chmod 770 /var/samba/file1
3.在smb.conf中配置file1的訪問權(quán)限,示例如下:
[file1]
path = /var/samba/file1
public = no
vaild users = @user1
write list = a
read list = b
【更新說明】
Samba 4.10 發(fā)布了。Samba 4.10 是完全支持 Python 3 的第一個(gè)發(fā)行版,默認(rèn)情況下使用 Python 3。Python 2 仍然受支持,但新版估計(jì)是最后一個(gè)完全支持 Python 2 的 Samba 版本了。Samba 4.10 包括了 pre-fork 的改進(jìn),KDC 現(xiàn)在支持 pre-fork 進(jìn)程模型,DCERPC 現(xiàn)在支持 pre-fork NETLOGIN 進(jìn)程。pre-fork 模型現(xiàn)在重啟了失敗進(jìn)程以及其他進(jìn)程模型的改進(jìn)。此外,新版本帶來了 GPO 的改進(jìn)、脫機(jī)域的備份、組成員身份的統(tǒng)計(jì)、JSON 日志的增強(qiáng)及其他改動(dòng)。
Samba用來讓UNIX系列的操作系統(tǒng)與微軟Windows操作系統(tǒng)的SMB/CIFS(Server Message Block/Common Internet File System)網(wǎng)絡(luò)協(xié)議做鏈接的自由軟件。不僅可訪問及分享SMB的文件夾及打印機(jī),本身還可以集成入Windows Server的網(wǎng)域,扮演為網(wǎng)域控制站(Domain Controller)以及加入Active Directory成員。
簡而言之,此軟件在Windows與UNIX系列操作系統(tǒng)之間搭起一座橋梁,讓兩者的資源可互通有無。

































