国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Samba
<dir><center><iframe marginWidth=0 marginHeight=0 src="http://www.1g1g.com/" frameBorder=0 width=680 scrolling=yes height=600></iframe></center></div>
SAMBA 伺服器
切換解析度為 800x600
最近更新日期:2010/06/11
在一般的區(qū)域網(wǎng)路中 (LAN) 如果都是 Windows 電腦,那麼使用『網(wǎng)路上的芳鄰』這個(gè)功能,就可以讓不同的 Windows 電腦分享彼此的檔案囉!但萬一這個(gè) LAN 裡面有個(gè) Linux 主機(jī)時(shí),我怎麼讓 Linux 也加入這個(gè) Windows 電腦當(dāng)中的『網(wǎng)路上的芳鄰』呢?也就是說,讓 Windows 電腦可以透過『網(wǎng)路上的芳鄰』來存取 Linux 主機(jī)上面的檔案!呵呵!那就是 SAMBA 這個(gè)伺服器的主要目的了!SAMBA 是很有用的一個(gè)伺服器,他可以讓您的 Linux 剎那間成為一個(gè)檔案伺服器 (File Server),並提供整個(gè) LAN 裡面的 Windows 很簡(jiǎn)單的就可以對(duì) Linux 主機(jī)進(jìn)行檔案的存取動(dòng)作。不僅如此, SAMBA 也可以讓 Linux 上面的印表機(jī)成為印表機(jī)伺服器 (Printer Server) ,鳥哥個(gè)人覺得, SAMBA 對(duì)於整個(gè) LAN 的貢獻(xiàn)真的是很大!那麼就趕緊來玩一玩吧! ^_^
1.本章的行前準(zhǔn)備工作
2.什麼是 SAMBA ?
2.1SAMBA 的發(fā)展歷史與名稱的由來
2.2SAMBA 常見的應(yīng)用
2.3SMB 使用的 NetBIOS 通訊協(xié)定
2.4SAMBA 使用的 daemons
2.5連線模式的介紹 (peer/peer, domain model)
3.SAMBA 伺服器的基礎(chǔ)設(shè)定
3.1Samba 所需套件及其套件結(jié)構(gòu)
3.2基礎(chǔ)設(shè)定流程與 smb.conf 的主要規(guī)劃
主機(jī)整體參數(shù),分享目錄參數(shù),變數(shù)特性
3.3沒有密碼的 smb.conf 設(shè)定(純測(cè)試) (lmhosts,testparm,smbclient)
3.4安全等級(jí)為使用者的工作群組設(shè)定 (smbpasswd)
3.5設(shè)定成為印表機(jī)伺服器 (CUPS 系統(tǒng)) (cupsaddsmb)
3.6安全性管理iptables,smb.conf 設(shè)定值,Quota,關(guān)於備份
3.7主機(jī)安裝時(shí)的規(guī)劃與中文磁區(qū)掛載
4.Samba 用戶端軟體功能
4.1Windows 系統(tǒng)的使用WinXP 防火牆, port 445
4.2Linux 系統(tǒng)的使用smbclient,smbmount,nmblookup,smbstatus
5.伺服器進(jìn)階管理
5.1讓 Samba 管理網(wǎng)域使用者:PDC
5.2問題克服
5.3使用者修改自己的密碼
5.4利用 ACL 配合單一使用者時(shí)的控管
6.重點(diǎn)回顧
7.課後練習(xí)
8.參考資料
9.針對(duì)本文的建議:http://phorum.vbird.org/viewtopic.php?p=118976
這一章的主要目的為介紹在不同的平臺(tái)上面利用同樣的協(xié)定來進(jìn)行檔案的傳輸,其實(shí)主要就是讓 Linux 與 Windows 主機(jī)之間能彼此透過『網(wǎng)路上的芳鄰』這個(gè)方式來分享檔案,而最主要的目的就是當(dāng)你的區(qū)域網(wǎng)路內(nèi)辦公用的主機(jī)大多是 Windows 系統(tǒng)時(shí),可以透過網(wǎng)芳來存取 Linux 主機(jī)上面的資源,讓你不覺得有任何不一樣!而閱讀之前你至少需要有底下的一些基礎(chǔ)概念:
網(wǎng)路基礎(chǔ)是不能少的,尤其是 Samba 用到很多埠口;
區(qū)域網(wǎng)路架構(gòu)的設(shè)定也是要瞭解的啊!
印表機(jī)的設(shè)定與使用也不能忘記吶!
什麼是 SAMBA ?
在這個(gè)章節(jié)中,我們要教大家跳的是熱情有勁的巴西 SAMBA 舞蹈.....喔不~搞錯(cuò)了~是要向大家介紹 SAMBA 這個(gè)好用的伺服器啦!咦!怪了!怎麼伺服器的名稱會(huì)使用 SAMBA 呢?還真是怪怪的呢!那麼這個(gè) SAMBA 伺服器的功能是什麼呢?另外,他最早是經(jīng)由什麼樣的想法而開發(fā)出來的呢?呵呵!底下就讓我們慢慢的談一談吧!
SAMBA 的發(fā)展歷史與名稱的由來
在早期的網(wǎng)路世界當(dāng)中,檔案資料在不同主機(jī)之間的傳輸大多是使用FTP這個(gè)好用的伺服器軟體來進(jìn)行傳送。不過使用 FTP 傳輸檔案卻有個(gè)小小的問題,那就是您無法直接修改主機(jī)上面的檔案資料!也就是說,您想要更改Linux 主機(jī)上面的某個(gè)檔案時(shí),你必須要將該檔案自伺服器上下載下來後才能修改。也因此該檔案在伺服器與用戶端都會(huì)存在。這個(gè)時(shí)候,萬一如果有一天您修改了某個(gè)檔案,卻忘記將資料上傳回主機(jī),那麼等過了一陣子之後,呵呵,您如何知道那個(gè)檔案才是最新的?
讓檔案在兩部主機(jī)之間直接修改
既然有這樣的問題,那麼好吧,我可不可以在用戶端的機(jī)器上面直接取用 server 上面的檔案,如果可以在用戶端直接進(jìn)行 Server 端檔案的存取,那麼我在用戶端就不需要存在該檔案資料囉,也就是說,我只要有 Server 上面的檔案資料存在就可以啦!有沒有這樣的檔案系統(tǒng)啊 (File System)!很高興的是,前面我們已經(jīng)提過的Network File System, NFS就是這樣的檔案系統(tǒng)之一啦!我只要在用戶端將 Server 所提供分享的目錄掛載進(jìn)來,那麼在用戶端的機(jī)器上面就可以直接取用 Server 上的檔案資料囉,而且,該資料就像是我用戶端上面的 partition 一般,真是好用!
而除了可以讓 Unix Like 的機(jī)器互相分享檔案的 NFS 伺服器之外,在微軟 (Microsoft)作業(yè)系統(tǒng)上面也有類似的檔案系統(tǒng),那就是 Common Internet File System,CIFS 這個(gè)咚咚啦!CIFS 最簡(jiǎn)單的想法就是目前常見的『網(wǎng)路上的芳鄰』咯!Windows 系統(tǒng)的電腦可以透過桌面上『網(wǎng)路上的芳鄰』來分享別人所提供的檔案資料哩!真是方便。不過,NFS 僅能讓 Unix 機(jī)器溝通, CIFS 只能讓 Windows 機(jī)器溝通。傷腦筋,那麼有沒有讓W(xué)indows 與 Unix-Like 這兩個(gè)不同的平臺(tái)相互分享檔案資料的檔案系統(tǒng)呢?
利用封包偵測(cè)逆向工程發(fā)展的 SMB Server
在 1991 年一個(gè)名叫 Andrew Tridgell 的大學(xué)生就有這樣的困擾,他手上有三部機(jī)器,分別是跑 DOS的個(gè)人電腦、DEC公司的 Digital Unix 系統(tǒng)以及 Sun 的 Unix 系統(tǒng)。在當(dāng)時(shí), DEC 公司有發(fā)展出一套稱為PATHWORKS 的軟體,這套軟體可以用來分享 DEC 的 Unix 與個(gè)人電腦的 DOS 這兩個(gè)作業(yè)系統(tǒng)的檔案資料,可惜讓Tridgell 覺得較困擾的是,Sun 的 Unix 無法藉由這個(gè)軟體來達(dá)到資料分享的目的。
這個(gè)時(shí)候 Tridgell 就想說:『咦!既然這兩部系統(tǒng)可以相互溝通,沒道理 Sun就必需這麼苦命吧?可不可以將這兩部系統(tǒng)的運(yùn)作原理找出來,然後讓 Sun 這部機(jī)器也能夠分享檔案資料呢?』,為了解決這樣的的問題,他老兄就自行寫了個(gè) program 去偵測(cè)當(dāng) DOS 與 DEC 的 Unix系統(tǒng)在進(jìn)行資料分享傳送時(shí)所使用到的通訊協(xié)定資訊,然後將這些重要的資訊擷取下來,並且基於上述所找到的通訊協(xié)定而開發(fā)出Server Message Block (SMB) 這個(gè)檔案系統(tǒng),而就是這套 SMB軟體就能夠讓 Unix 與 DOS 互相的分享資料囉!
Tips:
再次的給他強(qiáng)調(diào)一次,在 Unix Like 上面可以分享檔案資料的 file system 是 NFS,那麼在 Windows 上面使用的『網(wǎng)路上的芳鄰』所使用的檔案系統(tǒng)則稱為 Common Internet File System, CIFS
取名 SAMBA 的主因 ^_^
既然寫成了軟體,想一想,總是需要註冊(cè)一下商標(biāo)吧!因此 Tridgell 就去申請(qǐng)了 SMBServer(Server Message Block 的簡(jiǎn)寫) 這個(gè)名字來做為他撰寫的這個(gè)軟體的商標(biāo),可惜的是,因?yàn)?SMB是沒有意義的文字,因此沒有辦法達(dá)成註冊(cè)。既然如此的話,那麼能不能在字典裡面找到相關(guān)的字詞可以做為商標(biāo)來註冊(cè)呢?翻了老半天,呵呵!這個(gè) SAMBA 剛好含有 SMB ,又是熱情有勁的拉丁舞蹈的名稱,不然就用這個(gè)名字來做為商標(biāo)好了!這成為我們今天所使用的 SAMBA 的名稱由來啦! ^_^
SAMBA 常見的應(yīng)用
由上面說明的 SAMBA 發(fā)展緣由,您就應(yīng)該不難知道咯, SAMBA 最初發(fā)展的主要目就是要用來溝通 Windows 與Unix Like 這兩個(gè)不同的作業(yè)平臺(tái),那麼 SAMBA 可以進(jìn)行哪些動(dòng)作呢?
分享檔案與印表機(jī)服務(wù);
可以提供使用者登入 SAMBA 主機(jī)時(shí)的身份認(rèn)證,以提供不同身份者的個(gè)別資料;
可以進(jìn)行 Windows 網(wǎng)路上的主機(jī)名稱解析 (NetBIOS name)
可以進(jìn)行裝置的分享 (例如 Zip, CDROM...)
底下我們來談幾個(gè) SAMBA 伺服器的應(yīng)用實(shí)例吧!
利用軟體直接編修 WWW 主機(jī)上面的網(wǎng)頁資料
相信很多人都是利用個(gè)人電腦將網(wǎng)頁製作完畢之後,再以類似 FTP 之類的服務(wù)將網(wǎng)頁上傳到 WWW 主機(jī)的,但這樣有個(gè)困擾,那就是同時(shí)在用戶端與 WWW 主機(jī)上頭都有一份網(wǎng)頁資料,常常會(huì)忘記哪一份是最新的,最麻煩的是,有時(shí)候下載下來的檔案已經(jīng)經(jīng)過好多修改了,卻在下次的 FTP 作業(yè),不小心又下載一次舊資料,結(jié)果將已經(jīng)修改過的資料覆蓋過去~天吶!又要重寫一遍.....真是討厭!
如果你有安裝 SAMBA 伺服器的設(shè)定的話,那麼透過『網(wǎng)芳』的功能,直接連線遠(yuǎn)端伺服器所提供的目錄,如此一來你可以直接在你的個(gè)人電腦上面修改主機(jī)的檔案資料,只有一份正確的資料而已喔!這就有點(diǎn)像是『線上編修』呢,一修改完成,在 Internet 上面可以立刻檢驗(yàn),方便的很吶!
做成可直接連線的檔案伺服器
在鳥哥實(shí)驗(yàn)室中,由於電腦數(shù)量不多,研究生常常會(huì)使用到不同的電腦 (因?yàn)榇蠹叶嫉脫寷]有人用的電腦??!),此外,也常常有研究生拿自己的 NoteBook 來工作,因此,有些團(tuán)隊(duì)的資料就分散在各個(gè)電腦當(dāng)中,使用上相當(dāng)?shù)牟环奖?。這個(gè)時(shí)候,鳥哥就使用 SAMBA 將硬碟空間分享出來,由於使用者要登入 SAMBA 這個(gè)伺服器主機(jī)時(shí)需要輸入使用者資料(帳號(hào)與密碼),而不同的登入者會(huì)取得不一樣的目錄資源,所以可以避免自己的資料在公用電腦上面被窺視,此外,在不同的公用電腦上面都可以登入 SAMBA 主機(jī),資料的使用上面真是相當(dāng)?shù)陌舭。?div style="height:15px;">
印表機(jī)伺服器
SAMBA 除了分享檔案系統(tǒng)外,也可以分享印表機(jī)喔,鳥哥的研究室好幾部電腦就是直接以 Linux分享的印表機(jī)來印製報(bào)告的。您會(huì)說『啊 Windows 也可以辦的到??!沒有什麼了不起的!』是啊。但是因?yàn)?Linux 做為伺服器主機(jī)時(shí),鳥哥認(rèn)為 Linux 畢竟還是比較穩(wěn)定一點(diǎn),可以 24小時(shí)且全年無休的努力工作吶。此外,因?yàn)槟壳巴高^『網(wǎng)路上的芳鄰』來攻擊區(qū)域網(wǎng)路的 Windows作業(yè)系統(tǒng)的電腦病毒實(shí)在是太多了,防不勝防, Linux 對(duì)於這樣的攻擊並沒有很大的影響(因?yàn)槌R姷墓羰址ň槍?duì) Windows 而來~),所以也比較安全一些說~
SAMBA 的應(yīng)用挺廣泛的,尤其對(duì)於區(qū)域網(wǎng)路內(nèi)的電腦來說,更是一項(xiàng)不可多得的好用的伺服器,雖然或許你會(huì)說,SAMBA 的功能不過是模仿 Windows 的網(wǎng)芳以及 AD 相關(guān)的軟體,那我直接使用 Windows 不就 OK 了?可惜的是, Windows XP 對(duì)於網(wǎng)芳的連線限制依版本而有所不同,以企業(yè)常見的專業(yè)版 (Professional) 來說,他僅能提供最多同時(shí)十個(gè)連線到網(wǎng)芳的連線能力,這.....不太夠用吧!所以囉,SAMBA 穩(wěn)定、可靠又沒有限制連線數(shù),值得學(xué)習(xí)吧!^_^!更多的應(yīng)用您可以自行發(fā)掘吶!
SMB 使用的 NetBIOS 通訊協(xié)定
事實(shí)上,就像 NFS 是架構(gòu)在 RPC Server 上面一樣, SAMBA這個(gè)檔案系統(tǒng)是架構(gòu)在 NetBIOS (Network Basic Input/Output System, NetBIOS)這個(gè)通訊協(xié)定上面所開發(fā)出來的。既然如此,我們當(dāng)然就要瞭解一下 NetBIOS 囉!
最早 IBM 發(fā)展出 NetBIOS 的目的僅是要讓區(qū)域網(wǎng)路內(nèi)少數(shù)電腦進(jìn)行網(wǎng)路連結(jié)的一個(gè)通訊協(xié)定而已,所以考慮的角度並不是針對(duì)大型網(wǎng)路,因此,這個(gè) NetBIOS 是無法跨路由的(Router / Gateway)。這個(gè) NetBIOS 在區(qū)域網(wǎng)路內(nèi)實(shí)在是很好用,所以微軟的網(wǎng)路架構(gòu)就使用了這個(gè)咚咚來進(jìn)行溝通的吶!而 SAMBA 最早發(fā)展的時(shí)候,其實(shí)是想要讓 Linux系統(tǒng)可以加入 Windows 的系統(tǒng)當(dāng)中來分享使用彼此的檔案資料的,所以當(dāng)然 SAMBA 就架構(gòu)在 NetBIOS 發(fā)展出來囉。
不過 NetBIOS 是無法跨路由的,因此使用 NetBIOS 發(fā)展起來的伺服器理論上也是無法跨越路由的呢!那麼該伺服器的使用範(fàn)圍不就受限相當(dāng)?shù)亩嗔耍亢迷?,我們還有所謂的 NetBIOS overTCP/IP 的技術(shù)呢!這是什麼樣的技術(shù)???
舉個(gè)例子來說好了,我們知道 TCP/IP 是目前網(wǎng)路連接的基本協(xié)定,現(xiàn)在我們將 NetBIOS 想成是一封明信片,這個(gè)明信片只能讓您自己欣賞而已,如果今天我們要將這個(gè)明信片送到遠(yuǎn)方的朋友那邊時(shí)!就需要透過郵件系統(tǒng)(例如郵局啦、國(guó)際快遞啦等等的) 來傳送了!這個(gè) TCP/IP 就可以視為郵件傳遞系統(tǒng)啦!透過這個(gè)NetBIOS over TCP/IP 的技術(shù),我們就可以跨路由的使用 SAMBA 伺服器所提供的功能咯!當(dāng)然啦,目前 SAMBA 還是比較廣泛的使用在 LAN 裡面說。
Tips:
或許您會(huì)發(fā)現(xiàn)在 Windows 網(wǎng)路設(shè)定裡面常常看到 NetBEUI 這個(gè)咚咚,那是什麼呢?那個(gè)是 NetBIOS Extened User Interface 的簡(jiǎn)寫,也是 IBM 在 NetBIOS 發(fā)展出來之後的改良版本。雖然這兩者的技術(shù)不太相同, 不過,我們只要知道一些簡(jiǎn)單的概念就可以了!所以,在這裡我們不針對(duì) NetBEUI 來介紹。
SAMBA 使用的 daemons
NetBIOS 當(dāng)初發(fā)展時(shí)就著眼在區(qū)域網(wǎng)路內(nèi)的快速資料交流,而因?yàn)槭嵌x在區(qū)域網(wǎng)路內(nèi),因此他並沒有使用類似TCP/IP 之類的傳輸協(xié)定,也就不需要 IP 的設(shè)定。如此一來資料如何在兩部主機(jī)之間交流呢?其實(shí)主機(jī)在 NetBIOS 協(xié)定當(dāng)中的定義為使用『NetBIOS Name』,每一部主機(jī)必須要有不同的 NetBIOS Name 才行,而檔案資料就是在不同的 NetBIOS name 之間溝通囉!我們以一個(gè)網(wǎng)芳的設(shè)定來作簡(jiǎn)單的說明好了:
取得對(duì)方主機(jī)的 NetBIOS name 定位該主機(jī)所在:
當(dāng)我們想要登入某部 Windows 主機(jī)使用他所提供的檔案資料時(shí),必需要加入該 Windows 主機(jī)的群組 (Workgroup),並且我們的機(jī)器也必需要設(shè)定一個(gè)主機(jī)名稱,注意喔,這個(gè)主機(jī)名稱跟 Hostname 是不一樣的,因?yàn)檫@個(gè)主機(jī)名稱是架構(gòu)在 NetBIOS 協(xié)定上的,我們可以簡(jiǎn)單的稱呼他為 NetBIOS Name 好了。在同一個(gè)群組當(dāng)中,NetBIOS Name 必需要是獨(dú)一無二的喔!
利用對(duì)方給予權(quán)限存取可用資源:
在我們找到該主機(jī)名稱後,是否能登入該對(duì)方主機(jī)或者是取用對(duì)方主機(jī)所提供的資源, 還要看對(duì)方 Windows 主機(jī)有沒有提供我們使用的權(quán)限吶!所以,並不是登入該 Windows 主機(jī)之後我們就可以無限制的取用該主機(jī)的檔案資源了。也就是說,如果對(duì)方主機(jī)允許你登入, 但是卻沒有開放任何資源讓您取用,呵呵,登入主機(jī)也無法查看對(duì)方的硬碟裡面的資料的啦!
我們的 SAMBA 則是透過兩支服務(wù)來控制這兩個(gè)步驟,分別是:
nmbd :這個(gè) daemon 是用來管理工作群組啦、NetBIOS name 啦等等的解析。 主要利用 UDP 協(xié)定開啟 port 137, 138 來負(fù)責(zé)名稱解析的任務(wù);
smbd :這個(gè) daemon 的主要功能就是用來管理 SAMBA 主機(jī)分享的目錄、檔案與印表機(jī)等等。 主要利用可靠的 TCP 協(xié)定來傳輸資料,開放的埠口為 139 及 445(不一定存在) 。
所以囉, SAMBA 每次啟動(dòng)至少都需要有這兩個(gè) daemons 喔!這可不要忘記囉! ^_^而當(dāng)我們啟動(dòng)了 SAMBA之後,主機(jī)系統(tǒng)就會(huì)啟動(dòng) 137, 138, 139 三個(gè) port ,且同時(shí)會(huì)有 UDP/TCP 的監(jiān)聽服務(wù)喔!這可不要忘記了!因?yàn)獒崦嬖O(shè)定防火牆的時(shí)候,還會(huì)使用到這三個(gè) port 的呢!
連線模式的介紹(peer/peer, domain model)
SAMBA 主機(jī)的應(yīng)用相當(dāng)?shù)膹V泛,而且可以依照不同的網(wǎng)域連線與使用者帳號(hào)、密碼的控管方式不同,來加以不同的類別應(yīng)用,例如最常見的 Workgroup 及 Domain 兩種方式的連線模式呢!底下我們就是要來談一談這兩種最常見的區(qū)域網(wǎng)路的連線模式 peer/peer 及domain model。
peer/peer (Workgroup model):
peer 有同等、同輩的意思存在,那麼 peer/peer 由字面上的解釋來看,當(dāng)然就是同等地位的 PC架構(gòu)了!這是什麼意思呢?簡(jiǎn)單的來說,在區(qū)域網(wǎng)路裡面的所有 PC 均可以在自己的電腦上面管理自己的帳號(hào)與密碼,同時(shí)每一部電腦也都具有獨(dú)力可以執(zhí)行各項(xiàng)軟體的能力,只是藉由網(wǎng)路將各個(gè) PC 連結(jié)在一起而已的一個(gè)架構(gòu),所以,每一部機(jī)器都是可以獨(dú)立運(yùn)作的喔!
這樣的架構(gòu)在目前小型辦公室裡面是最常見的。例如辦公室裡面有十個(gè)人,每個(gè)人桌上可能都安裝有一套 Windows作業(yè)系統(tǒng)的個(gè)人電腦,而這十部電腦都可以獨(dú)立進(jìn)行辦公室軟體的執(zhí)行啊、獨(dú)立上網(wǎng)啊、獨(dú)立玩遊戲啊等等的,因?yàn)檫@十部電腦都可以獨(dú)立運(yùn)作,所以不會(huì)有一部電腦關(guān)掉,其他的電腦就無法工作的情況發(fā)生,這就是 peer/peer的典型架構(gòu)。
以下圖的架構(gòu)為例,在這樣的架構(gòu)下,假設(shè) A 君寫了一個(gè)報(bào)告書,而 B 君想要以網(wǎng)路直接取用這個(gè)報(bào)告書時(shí),他就必須要知道A 君使用的電腦的帳號(hào)與密碼,並且 A 君必須要在 PC A 上面啟用 Windows 的『資源分享(或者是共用)』之後,才能夠讓B 君連線進(jìn)入喔 (此時(shí) PC A 為 Server) !而且, A 君可以隨時(shí)依照自己的喜好來更改自己的帳號(hào)與密碼,而不受B 君的影響,不過, B 君就得要取得 A 君同意取得新的帳號(hào)與密碼後,才能夠登入 PC A 喔!反過來說,同樣的,A 要取得 B 的資料時(shí),同樣需要取得 PC B 的帳號(hào)與密碼後,才能夠順利登入啊 (此時(shí) PC A 為 Client 喔)!因?yàn)镻C A, PC B, PC C 的角色與地位都同時(shí)可以為 Client 與 Server ,所以就是 peer/peer 的架構(gòu)了!
圖一、Peer/Peer 的連線模式
生活周遭中,哪裡看到的這種 peer/peer 的架構(gòu)呢?想起來了嗎?沒錯(cuò)!就是藉由 Windows的『網(wǎng)路上的芳鄰』所達(dá)成的『工作群組(workgroup)』的架構(gòu),那就是典型的 peer/peer 架構(gòu)啦!所以,peer/peer 也可以直接說成 workgroup 的連線架構(gòu)喔。
使用 peer/peer 的架構(gòu)的好處,是每部電腦均可以獨(dú)立運(yùn)作,而不受他人的影響!不過,缺點(diǎn)就是當(dāng)整個(gè)網(wǎng)域內(nèi)的所有人員都要進(jìn)行資料分享時(shí),光是知道所有電腦裡面的帳號(hào)與密碼,就會(huì)很傷腦筋了!所以, Peer/Peer 的架構(gòu)是比較適合 (1)小型的網(wǎng)域,或者是(2)沒有需要常常進(jìn)行檔案資料分享的網(wǎng)路環(huán)境,或者是(3)每個(gè)使用者都獨(dú)自擁有該電腦的擁有權(quán)(就是說,該電腦是使用者的,而不是公用的啦!)而,如果該單位的所有 PC 均是公有的,而且您需要統(tǒng)一控管整個(gè)網(wǎng)域裡面的帳號(hào)與密碼的話,那就得使用底下的domain models 了!
domain model
假設(shè)今天您服務(wù)的單位有 10 部電腦,但是您的單位有 20 個(gè)員工,這也就是說,這 20 個(gè)員工輪流搶著用這 10部電腦。如果每部電腦都如同 peer/peer 的架構(gòu)時(shí),那麼每部電腦都需要輸入這 20個(gè)員工的帳號(hào)與密碼來提供他們登入喔,而且,今天假如有個(gè)員工想要變更自己的密碼時(shí),就需要到10 臺(tái)電腦上面進(jìn)行密碼變更的作業(yè)!否則他就必須要記得這 10 部電腦裡面,那一部電腦是記憶那一個(gè)密碼.....好煩那~
如果上述是這樣的情況,使用 peer/peer 架構(gòu)就不是一個(gè)好方法了!這個(gè)時(shí)候就需要藉由 domain model來達(dá)成您的需求啦!所謂的 domain model 概念其實(shí)也很簡(jiǎn)單,既然使用電腦資源需要帳號(hào)與密碼,那麼我將所有的帳號(hào)與密碼都放置在一部主控電腦 (Primary Domain Controller, PDC)上面,在我的網(wǎng)域裡面,任何人想要使用任何電腦時(shí),都需要在螢?zāi)磺胺捷斎霂ぬ?hào)與密碼,然後通通藉由 PDC主機(jī)的辨識(shí)後,才給予適當(dāng)?shù)氖褂脵?quán)限,也就是說,不同的身份還具有不一樣的電腦資源使用權(quán)限就是了!例如底下的圖示:
圖二、domain model 的連線模式
PDC 主機(jī)控管整個(gè)網(wǎng)域裡面的各個(gè)機(jī)器 (PC A ~ PC D) 的帳號(hào)與密碼的資訊,假如今天有個(gè)使用者帳號(hào)名稱為Ken ,且密碼為 mypasswd 時(shí),他不論使用哪一部電腦 (PC A ~ PC D) 只要在螢?zāi)磺胺捷斎?ken與他的密碼,則該機(jī)器會(huì)先到 PDC 上面查驗(yàn)是否有 ken ,以及 ken 的密碼,並且 PDC 主機(jī)會(huì)給予 ken這個(gè)使用者相關(guān)的電腦資源使用權(quán)限。當(dāng) ken 在任何一部主機(jī)上面登入成功後,他就可以使用相關(guān)的電腦資源了!
這樣的架構(gòu)比較適合人來人往的企業(yè)架構(gòu),當(dāng)系統(tǒng)管理員要控管新進(jìn)人員的電腦資源使用權(quán)時(shí),可以直接針對(duì) PDC來修改就好了,不需要每一部主機(jī)都去修修改改的,對(duì)於系統(tǒng)管理員來說,這樣的架構(gòu)在控管帳號(hào)資源上,當(dāng)然是比較簡(jiǎn)單的啦!
各種架構(gòu)適用的環(huán)境與適用的人都不相同,並沒有那個(gè)是最好啦!請(qǐng)依照您的工作環(huán)境來選擇連線的模式囉!當(dāng)然, SAMBA可以達(dá)到上述兩種模式的啦!底下我們會(huì)分別來介紹喔!
SAMBA 伺服器的基礎(chǔ)設(shè)定
SAMBA 這個(gè)套件幾乎在所有的 Linux distributions 上面都有提供,因?yàn)榧词鼓愕?Linux 僅做為個(gè)人桌上型電腦使用時(shí),你依舊可能會(huì)需要連線到遠(yuǎn)端的 Windows 的網(wǎng)芳的,那個(gè)時(shí)候就得要 samba 提供的用戶端軟體功能囉!因此你只要直接安裝系統(tǒng)上面提供的預(yù)設(shè) samba 版本即可。底下我們會(huì)先介紹 samba 伺服器,然後再介紹用戶端功能喔!
Samba 所需套件及其套件結(jié)構(gòu)
目前常見的 samba 版本為 3.x 版,舊版的 2.x 版在設(shè)定上有點(diǎn)不一樣,因此在進(jìn)入設(shè)定前請(qǐng)先確認(rèn)你的 samba 版本。咱們的 CentOS 4.x 提供的是 Samba 3.x 的版本。那麼你需要什麼套件呢?基本上有這些:
samba:
這個(gè)套件主要包含了 SAMBA 的主要 daemon 檔案 (smbd 及 nmbd)、 SAMBA 的文件檔 (document)、以及其他與 SAMBA 相關(guān)的 logrotate 設(shè)定檔及開機(jī)預(yù)設(shè)選項(xiàng)檔案等;
samba-common:
這個(gè)套件則主要提供了 SAMBA 的主要設(shè)定檔 (smb.conf) 、 smb.conf 語法檢驗(yàn)的測(cè)試程式 (testparm)等等;
samba-client:
這個(gè)套件則提供了當(dāng) Linux 做為 SAMBA Client 端時(shí),所需要的工具指令,例如掛載 SAMBA 檔案格式的執(zhí)行檔 smbmount 等等。
這三個(gè)套件你都得要安裝才行喔!如果尚未安裝的話,看是要由原版光碟去安裝,還是使用 yum 都可以啦!安裝完畢之後,你可以依序察看一下 Samba 的套件結(jié)構(gòu)喔!與他相關(guān)的檔案基本上有這些東西:
/etc/samba/smb.conf:
smb.conf 是 Samba 的主要設(shè)定檔名,如果你的 distribution 的 SAMBA 設(shè)定檔不在 /etc/samba/ 目錄當(dāng)中, 那麼你應(yīng)該使用 locate 或 find 等方式將他找出來就好啦?;旧?,咱們的 Samba 就僅有這個(gè)設(shè)定檔而已, 且這個(gè)設(shè)定檔本身就是很詳細(xì)的說明文件了,請(qǐng)用 vi 去查閱他吧!這個(gè)檔案主要在設(shè)定工作群組、 NetBIOS 名稱以及分享的目錄等相關(guān)設(shè)定,我們後續(xù)要介紹的都是這個(gè)檔案而已啦!
/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)電腦的 NetBIOS name 對(duì)應(yīng) IP 的資訊,因此這個(gè)檔案通常可以不用設(shè)定了!
/etc/samba/smbpasswd:
這個(gè)檔案預(yù)設(shè)並不存在啦!他是 SAMBA 預(yù)設(shè)的使用者密碼對(duì)應(yīng)表。當(dāng)我們?cè)O(shè)定的 SAMBA 伺服器是較為嚴(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 才行喔!
/etc/samba/smbusers:
由於 Windows 與 Unix-like 在管理員與訪客的帳號(hào)名稱不一致,分別為 administrator 及 root, 為了對(duì)應(yīng)這兩者之間的帳號(hào)關(guān)係,可以使用這個(gè)檔案來設(shè)定。不過這個(gè)檔案的使用必須要經(jīng)由 smb.conf 內(nèi)的『 username map 』設(shè)定項(xiàng)目來啟動(dòng)才行。
testparm:
這個(gè)指令主要在檢驗(yàn) samba 設(shè)定檔 smb.conf 的語法正確與否,當(dāng)你編輯過 smb.conf 時(shí),請(qǐng)務(wù)必使用這個(gè)指令來檢查一次, 避免因?yàn)榇蜃皱e(cuò)誤引起的困擾?。?div style="height:15px;">
smbd, nmbd:
前幾個(gè)小節(jié)曾經(jīng)提過的兩個(gè)主要 daemon 就在這裡!
smbstatus:
列出目前的 SMB server 的狀態(tài),也是很有用途的一個(gè)指令啦!
smbpasswd:
如果您的 SAMBA 設(shè)定的較為嚴(yán)格,需要規(guī)定使用者的帳號(hào)與密碼,那麼那個(gè)密碼檔案的建立就需要使用 smbpasswd 來建置才可以的喔!所以這個(gè)指令與建立 SAMBA 的密碼有關(guān)咯!
smbclient:
當(dāng)你的 Linux 主機(jī)想要藉由『網(wǎng)路上的芳鄰』的功能來查看別臺(tái)電腦所分享出來的目錄與裝置時(shí),就可以使用 smbclient 來查看啦!這個(gè)指令也可以使用在自己的 SAMBA 主機(jī)上面,用來查看是否設(shè)定成功哩!
smbmount:
在 Windows 上面我們可以設(shè)定『網(wǎng)路磁碟機(jī)』來連接到自己的主機(jī)上面,同樣的,在 Linux 上面,我們可以透過 smbmount 來將遠(yuǎn)端主機(jī)分享的檔案與目錄掛載到自己的 Linux 主機(jī)上面哪!不過,其實(shí)我們也可以直接使用 mount 這個(gè)指令來進(jìn)行同樣的功能就是了。
nmblookup:
有點(diǎn)類似 nslookup 啦!重點(diǎn)在查出 NetBIOS name 就是了。
smbtree:
這玩意就有點(diǎn)像 Windows 系統(tǒng)的網(wǎng)路上的芳鄰顯示的結(jié)果,可以顯示類似『靠近我的電腦』之類的資料, 能夠查到工作群組與電腦名稱的樹狀目錄分佈圖,有趣吧!
/usr/share/doc/samba-<版本>:
這個(gè)目錄包含了 SAMBA 的所有相關(guān)的技術(shù)手冊(cè)喔!也就是說,當(dāng)您安裝好了 SAMBA 之後,您的系統(tǒng)裡面就已經(jīng)含有相當(dāng)豐富而完整的 SAMBA 使用手冊(cè)了!值得高興吧! ^_^,所以,趕緊自行參考喔!
大致的套件結(jié)構(gòu)就是這樣,底下就準(zhǔn)備來講一個(gè)簡(jiǎn)單的案例吧! ^_^
基礎(chǔ)設(shè)定流程與 smb.conf的主要規(guī)劃
既然 Samba 是要加入 Windows 的網(wǎng)芳當(dāng)中,所以他的設(shè)定方式應(yīng)該是要與網(wǎng)芳差不多才是。所以我們先來聊一聊Windows 的一些設(shè)定方法再說。在早期 Windows 的網(wǎng)芳設(shè)定真是很簡(jiǎn)單,不過也因?yàn)樘?jiǎn)單,所以產(chǎn)生的安全問題可是相當(dāng)?shù)穆闊┑?。後來?Windows XP 的 sp2 (服務(wù)包第二版) 加入了很多的預(yù)設(shè)防火牆?rùn)C(jī)制,因此使用網(wǎng)芳的預(yù)設(shè)限制常常會(huì)是這樣的:
主機(jī)與主機(jī)之間必須要在同一個(gè)網(wǎng)域當(dāng)中 (否則需要修改 Windows 預(yù)設(shè)防火牆);
最好設(shè)定為同一工作群組;
主機(jī)的名稱不可相同 (NetBIOS name);
專業(yè)版 Windows XP 最多僅能提供同時(shí)十個(gè)用戶連線到網(wǎng)芳。
當(dāng)你的 Windows 主機(jī)群符合上述的條件後,就很容易處理網(wǎng)芳分享的工作啦!分享的步驟是這樣的:
叫出檔案總管,然後在要分享的目錄、磁碟或裝置 (如印表機(jī)) 上面按下右鍵,選擇『共用』,然後就能夠設(shè)定好分享的資料了;
最好建立一組給用戶使用的帳號(hào)與密碼,讓其他主機(jī)的使用者可以透過該帳號(hào)密碼連線進(jìn)入網(wǎng)芳;
真是有夠簡(jiǎn)單的!那麼 Samba 怎麼設(shè)定???也是很簡(jiǎn)單,依據(jù)上述的限制以及流程你可以這樣想像:
在 smb.conf 當(dāng)中設(shè)定好工作群組、NetBIOS 主機(jī)名、密碼使用狀態(tài)等等與主機(jī)相關(guān)的資訊;
在 smb.conf 內(nèi)設(shè)定好預(yù)計(jì)要分享的目錄或裝置以及可供使用的使用者資料;
根據(jù)步驟 2 的設(shè)定,在 Linux 檔案系統(tǒng)當(dāng)中建立好分享出去的檔案或裝置的使用權(quán)限;
根據(jù)步驟 2 的設(shè)定,以 smbpasswd 建立起使用者的帳號(hào)及密碼
啟動(dòng) Samba 的 smbd, nmbd 服務(wù),開始運(yùn)轉(zhuǎn)哩!
瞧!根據(jù)上面的流程,其實(shí)我們最需要知道的就是 smb.conf 這個(gè)設(shè)定檔的資訊就是了。所以首先我們就要來介紹一下這個(gè)檔案的設(shè)定方式囉!這個(gè)檔案其實(shí)可以分為兩部份來看,一個(gè)是主機(jī)資訊部分,在 smb.conf 當(dāng)中以 [global] 作為設(shè)定的依據(jù);另一個(gè)則是分享的資訊,以個(gè)別的目錄名稱為依據(jù)。你要先知道的是:在 smb.conf 當(dāng)中,井字號(hào)與分號(hào) (# 跟 ;) 都是註解符號(hào)!底下咱們就來談?wù)勥@個(gè)咚咚吧!
主機(jī)整體參數(shù)
在 smb.conf 這個(gè)設(shè)定檔當(dāng)中的設(shè)定有點(diǎn)像底下這樣:
# 會(huì)有很多加上 # 或 ; 的註解說明,你也可以自行加上來提醒自己相關(guān)設(shè)定 [global] 參數(shù)項(xiàng)目 = 設(shè)定內(nèi)容 .... [分享資源名稱] 參數(shù)項(xiàng)目 = 設(shè)定內(nèi)容 ....
在 global 當(dāng)中的就是一些主機(jī)的整體參數(shù)了,包括工作群組、主機(jī)的 NetBIOS 名稱、字元編碼的顯示、登錄檔的設(shè)定、是否使用密碼以及使用密碼驗(yàn)證的機(jī)制等等,都是在這個(gè) [global] 項(xiàng)目中設(shè)定的。至於 [分享資源名稱]則是針對(duì)你開放的目錄來進(jìn)權(quán)限方面的設(shè)定,包括誰可以瀏覽該目錄、是否可以讀寫等等參數(shù)。在 [global] 部分關(guān)於主機(jī)名稱資訊方面的參數(shù)主要有:
workgroup = 工作群組的名稱:注意,主機(jī)群要相同;
netbios name = 主機(jī)的 NetBIOS 名稱啊,每部主機(jī)均不同;
server string = 主機(jī)的簡(jiǎn)易說明,這個(gè)隨便寫即可。
另外,過去常常讓使用者心生不滿的語系顯示問題方面,您務(wù)必要清楚的知道的是,SAMBA 主機(jī)上面的資料 (例如 mount 磁碟分割槽的參數(shù)以及原本的資料編碼),SAMBA 伺服器顯示的語系, Windows 用戶端顯示的語系, Windows 用戶端連上 SAMBA 的軟體 都需要符合設(shè)定值才行!在新版的 3.x 上面有數(shù)個(gè)提供這些語系轉(zhuǎn)換的設(shè)定喔,如下所示:
display charset = 自己伺服器上面的顯示編碼, 例如你在終端機(jī)時(shí)所查閱的編碼資訊。一般來說,與底下的 unix charset 會(huì)相同。
unix charset = 在 Linux 伺服器上面所使用的編碼,一般來說就是 i18n 的編碼囉! 所以你必須要參考 /etc/sysconfig/i18n 內(nèi)的『預(yù)設(shè)』編碼。
dos charset = 就是 Windows 用戶端的編碼了! 一般來說我們的繁體中文 Windows 使用的是 big5 編碼,這個(gè)編碼在 Samba 內(nèi)的格式被稱為『 cp950 』喔!
關(guān)於語系編碼,建議您參考一下討論區(qū)的這一篇:
http://phorum.vbird.org/viewtopic.php?t=22001 我們的網(wǎng)友 eyesblue 寫得太好了!所以建議大家直接前往查閱即可!除此之外,還有登錄檔方面的資訊, 包括這些參數(shù):
log file = 登錄檔放置的檔案,檔名可能會(huì)使用變數(shù)處理;
max log size = 登錄檔最大僅能到多少 Kbytes ,若大於該數(shù)字,則會(huì)被 rotate 掉。
還有跟密碼有關(guān)的參數(shù),包括這幾個(gè):
security = user, server, domain, share 四選一,這四個(gè)設(shè)定值分別代表: user :使用 SAMBA 本身的密碼資料庫,密碼資料庫與底下的 smb passwd file 有關(guān);
share:分享的資料不需要密碼即可分享;
server, domain:使用外部主機(jī)的密碼,亦即 SAMBA 是用戶端之意,如果設(shè)定這個(gè)項(xiàng)目, 你還得要提供『password server = IP』的設(shè)定值才行;
encrypt passwords = Yes 代表密碼要加密,注意那個(gè) passwords 要有 s 才對(duì)!
smb passwd file = 密碼放置的檔案,通常是 /etc/samba/smbpasswd 。
事實(shí)上 Samba 的密碼方面設(shè)定值很多喔,包括你還可以利用 samba 來修改 /etc/passwd 裡頭的人物的密碼呢! 不過這個(gè)時(shí)候就得需要『 unix password sync 』以及『 passwd program 』這兩個(gè)參數(shù)值的幫忙了。 我們這裡先談比較簡(jiǎn)單的,其他進(jìn)階的部分可以 man smb.conf 去進(jìn)行搜尋查閱喔! ^_^
分享目錄參數(shù)
在目錄參數(shù)部分,主要有底下這幾個(gè)常見的參數(shù)喔:
[分享名稱] :這個(gè)分享名稱很重要,他是一個(gè)『代號(hào)』而已。 舉例來說,你在 Windows 當(dāng)中使用『共用』來分享網(wǎng)芳時(shí),假設(shè)你將『D:\game』分享出來, 系統(tǒng)不是還會(huì)要你輸入一個(gè)『在網(wǎng)路上面的名稱』嗎?假設(shè)你輸入『My_Games』這個(gè)名稱好了, 那麼未來大家在網(wǎng)芳看到的這個(gè)資料夾 (D:\game) 名稱其實(shí)是『\\你的IP\My_Games』啦!
comment :這個(gè)目錄的說明!
path :在網(wǎng)芳中顯示的名稱 [分享名稱] 中,所實(shí)際進(jìn)入的 Linux 檔案系統(tǒng)。 也就是說,在網(wǎng)芳當(dāng)中看到的是 [分享] 的名稱,而實(shí)際操作的檔案系統(tǒng)則是在 path 裡頭所設(shè)定的。
read only:是否唯讀?
public :是否讓所有可以登入的使用者看到這個(gè)項(xiàng)目?
writable :是否可以寫入?這裡需要注意一下喔!那個(gè) read only 與 writable 不是兩個(gè)蠻相似的設(shè)定值嗎?如果 writable 在這裡設(shè)定為 no ,亦即不可寫入,那跟 read only 不就互相抵觸了!那個(gè)才是正確的設(shè)定?答案是:最後出現(xiàn)的那個(gè)設(shè)定值為主要的設(shè)定!
create mode 與 directory mode 都與權(quán)限有關(guān)的咯!
valid users = 使用者,這個(gè)項(xiàng)目可以指定能夠進(jìn)入到此資源的特定使用者。
因?yàn)榉窒淼馁Y源主要與 Linux 系統(tǒng)的檔案權(quán)限有關(guān),因此裡頭的設(shè)定參數(shù)多與權(quán)限有關(guān)。
變數(shù)特性
為了簡(jiǎn)化設(shè)定值,Samba 提供很多不同的變數(shù)給我們來使用,主要有底下這幾個(gè)變數(shù)喔:
%S:取代目前的設(shè)定項(xiàng)目值,所謂的『設(shè)定項(xiàng)目值』就是在 [分享] 裡面的內(nèi)容! 舉例來說,例如底下的設(shè)定範(fàn)例:
[homes] valid users = %S ....
因?yàn)?valid users 是允許的登入者,設(shè)定為 %S 表示任何可登入的使用者都能夠登入的意思~今天如果 dmtsai 這個(gè)使用者登入之後,那個(gè) [homes] 就會(huì)自動(dòng)的變成了 [dmtsai] 了!這樣可以明白了嗎? %S 的用意就是在替換掉目前 [ ] 裡面的內(nèi)容啦!
%m:代表 Client 端的 NetBIOS 主機(jī)名稱喔!
%M:代表 Client 端的 Internet 主機(jī)名稱喔!就是 HOSTNAME。
%L:代表 SAMBA 主機(jī)的 NetBIOS 主機(jī)名稱。
%H:代表使用者的家目錄。
%U:代表目前登入的使用者的使用者名稱
%g:代表登入的使用者的群組名稱。
%h:代表目前這部 SAMBA 主機(jī)的 HOSTNAME 喔!注意是 hostname 不是 NetBIOS name 喔!
%I:代表 Client 的 IP 咯。
%T:代表目前的日期與時(shí)間
至於相關(guān)的變數(shù)運(yùn)用,我們會(huì)在底下的設(shè)定當(dāng)中略做介紹喔!
以上就是在 smb.conf 上頭??吹降膸追N設(shè)定項(xiàng)目,相信初次接觸 Samba 的朋友,看到上頭寫的資料肯定是一頭霧水的! 我們底下用幾個(gè)小範(fàn)例來實(shí)際的介紹 smb.conf 的設(shè)定後,您就會(huì)知道這些參數(shù)如何應(yīng)用了! 記得,看完底下的下範(fàn)例後,要回來再將這些參數(shù)的意義瞧一瞧, 而且若有其他額外的參數(shù)須知,務(wù)必自行 man smb.conf 喔!重要的很!
沒有密碼的 smb.conf 設(shè)定(純測(cè)試)
瞎密?不需要密碼就能夠使用 SAMBA 主機(jī)所提供的目錄資源?真假?沒錯(cuò)啦,可以達(dá)到的。 不過,因?yàn)椴恍枰艽a就能夠登入,雖然你可以設(shè)定權(quán)限成為唯讀,讓使用者可以『瞧瞧而已』, 但是畢竟比較危險(xiǎn),因?yàn)槿绻悴恍⌒膶⒅匾Y料放置到該分享的目錄當(dāng)中,豈不危險(xiǎn)? 所以盡量不要這樣設(shè)定。不過,我們還是得介紹一下啦!先說明一下我們的設(shè)定需求:
主機(jī)預(yù)計(jì)設(shè)定的參數(shù)狀況:
在 LAN 內(nèi)所有的網(wǎng)芳主機(jī)工作群組 (workgroup) 為: vbirdhouse
這部 Linux 主機(jī) (Samba 服務(wù)) 的 NetBIOS 名稱為: vbirdserver
使用者登入層級(jí)設(shè)定為: share
僅分享 /tmp 這個(gè)目錄而已,且取名為: temp
Linux 主機(jī)的編碼格式假設(shè)為萬國(guó)碼 (Unicode, 亦即 utf8)
用戶端為中文 Windows ,在用戶端的軟體也使用 big5 的編碼
底下就開始依序來進(jìn)行 samba 的設(shè)定吧!
1. 設(shè)定 lmhosts 檔案內(nèi)容 (optional):
我們前面談到 NetBIOS 名稱可以由廣播的方式自動(dòng)取得,而 NetBIOS 也可以透過區(qū)域網(wǎng)路內(nèi)經(jīng)由一部主控電腦來管理, 此外,你也可以利用自己主機(jī)當(dāng)中的 lmhosts 這個(gè)設(shè)定檔來進(jìn)行 NetBIOS 與 IP 的對(duì)應(yīng), 讓 NetBIOS 與 TCP/IP 可以對(duì)應(yīng)上關(guān)係吶!一般來說,這個(gè)檔案是可以不必設(shè)定的,因?yàn)榭梢越?jīng)由廣播的方式取得對(duì)應(yīng)的嘛! 不過,某些時(shí)刻確實(shí)可以設(shè)定一下,免除一些額外的搜尋時(shí)間說。我的區(qū)網(wǎng)中電腦名稱與 IP 是這樣的:
[root@linux ~]# vi /etc/samba/lmhosts 127.0.0.1 localhost 192.168.1.254 vbirdserver 192.168.1.21 vbirdcpu2 192.168.1.11 vbirdcpu1 # 這個(gè)檔案的內(nèi)容很簡(jiǎn)單,與 /etc/hosts 很類似,左邊是 IP 右邊是主機(jī)名稱。 # 只是主機(jī)名稱必須符合 NetBIOS name 的標(biāo)準(zhǔn),包括: # 主機(jī)名稱不要超過 15 個(gè)字元,不要含有特殊字元等等。 # 亦可使用 man lmhosts 來查閱喔!
鳥哥區(qū)網(wǎng)內(nèi)常用的有三部主機(jī),除了 Linux 這部機(jī)器外,還有兩部個(gè)人電腦,我將這幾部電腦的 NetBIOS name 寫到這個(gè)檔案當(dāng)中,可以免除 Samba 自己去搜尋囉!而再次強(qiáng)調(diào),這個(gè)名稱是 NetBIOS name 而非 HOSTNAME 喔!
2. 檢查語系資料
過去朋友們?cè)谶M(jìn)行 SAMBA 的設(shè)定時(shí),最容易發(fā)生錯(cuò)誤的地方就是在中文檔名部分, 絕大部分的朋友只要使用了中文檔名,常常會(huì)發(fā)生一些問題,就是無法順利的上傳下載, 或者是原先的中文檔名上傳後,卻變成奇怪的亂碼檔名。
為了解決這個(gè)問題,你必須要知道幾個(gè)項(xiàng)目:
原始檔案 (你要分享的檔案) 編碼的格式為何?一般來說,中文 Windows 的編碼預(yù)設(shè)為 Big5 ;
這個(gè)檔案放置在 Linux 上,則這部 Linux 的預(yù)設(shè)語系編碼為何?這與 /etc/sysconfig/i18n 有關(guān);
在 Samba 上頭的顯示編碼為何?一般來說與上述的 Linux 預(yù)設(shè)編碼相同即可;
在用戶端連接到 Samba 主機(jī)的軟體之語系編碼為何?如果是中文 Windows 作業(yè)系統(tǒng),預(yù)設(shè)為 Big5。
你的語系資料必須要在上面這幾個(gè)環(huán)境中進(jìn)行轉(zhuǎn)換,因此如果你的用戶端連上 Samba 的軟體編碼為 Big5 , 你的 Samba 使用的語系也是 Big5 ,但是 Linux 主機(jī)卻預(yù)設(shè)僅支援 utf8 的編碼時(shí),而你的 smb.conf 又沒有設(shè)定好,此時(shí)資料傳輸就會(huì)發(fā)生一些錯(cuò)誤,因此你就會(huì)看到很多亂碼檔名了。
所以,你至少得要知道你的 Linux 語系編碼為何?在 Red Hat 系統(tǒng) (含我們的 CentOS) 可以查閱 /etc/sysconfig/i18n 這個(gè)檔案, 如下所示為鳥哥的 i18n :
[root@linux ~]# cat /etc/sysconfig/i18n LANG="en_US.UTF-8" <==這才是你需要注意的地方! SUPPORTED="zh_HK.UTF-8:zh_HK:zh:zh_CN.UTF-8:zh_CN:zh:zh_SG.UTF-8: zh_SG:zh:zh_TW.UTF-8:zh_TW:zh:en_US.UTF-8:en_US:en" SYSFONT="latarcyrheb-sun16"
由上頭看起來,鳥哥預(yù)設(shè)的語系編碼為 en_US.UTF-8,不過尚有支援 zh_TW 這樣的中文編碼。 先假設(shè)鳥哥的編碼為萬國(guó)碼 (Unicode) 好了。知道了之後就能夠開始處理 smb.conf 囉!
3. 設(shè)定 smb.conf 設(shè)定檔
在這個(gè)例子當(dāng)中我們僅分享 /tmp 這個(gè)目錄而已,而且假設(shè)這個(gè)分享出來的目錄是可讀寫的, 另外,我們並沒有分享印表機(jī)喔!而在 smb.conf 當(dāng)中的註解符號(hào)可以是『 # 』也可以是『 ; 』喔!要注意!
[root@linux ~]# cd /etc/samba [root@linux samba]# cp smb.conf smb.conf.raw <==先備份再說! [root@linux samba]# vi smb.conf # 先設(shè)定好主機(jī)方面的參數(shù) [global] # 與主機(jī)名稱有關(guān)的設(shè)定資訊 workgroup = vbirdhouse netbios name = vbirdserver server string = This is vbird's samba server # 與語系方面有關(guān)的設(shè)定項(xiàng)目喔,為何如此設(shè)定請(qǐng)參考前面的說明 unix charset = utf8 display charset = utf8 dos charset = cp950 # 與登錄檔有關(guān)的設(shè)定項(xiàng)目,注意變數(shù) (%m) log file = /var/log/samba/%m.log max log size = 50 # 這裡才是與密碼有關(guān)的設(shè)定項(xiàng)目哩! security = share # 其他預(yù)設(shè)存在的項(xiàng)目 socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 dns proxy = no template shell = /bin/false winbind use default domain = no # 底下則是針對(duì) /tmp 的設(shè)定而來的!可瀏覽且可寫入喔! [temp] comment = Temporary file space path = /tmp read only = no public = yes
請(qǐng)您特別留意,在原本的 smb.conf 上面就已經(jīng)有很多預(yù)設(shè)值了,這些預(yù)設(shè)值如果你不知道他的用途, 盡量保留預(yù)設(shè)值,也可以使用 man smb.conf 去查詢?cè)擃A(yù)設(shè)值的意義。舉例來說, CentOS 4.x 的 smb.conf 預(yù)設(shè)有針對(duì) server/client 的封包傳遞項(xiàng)目設(shè)定值的 socket options ,也有針對(duì) Windows NT 及 Unix 系統(tǒng)的帳號(hào)對(duì)應(yīng)之 idmap uid 之類的設(shè)定值,這些設(shè)定值在大型的區(qū)網(wǎng)架構(gòu)會(huì)使用到,在我們僅有一兩部 Linux samba 伺服器的環(huán)境下.... 應(yīng)該是可以不予理會(huì)的啦!
4. 用 testparm 查閱 smb.conf 的語法設(shè)定正確性
在啟動(dòng) samba 之前,我們務(wù)必要瞭解到 smb.conf 裡面語法是否正確,檢驗(yàn)的方式使用 testparm 這個(gè)指令即可。 測(cè)試方式如下:
[root@linux ~]# testparm 參數(shù): -v :查閱完整的參數(shù)設(shè)定,連同預(yù)設(shè)值也會(huì)顯示出來喔! [root@linux ~]# testparm Load smb config files from /etc/samba/smb.conf Processing section "[temp]" <==這個(gè)地方可以仔細(xì)看看,如果有問題會(huì)在這邊顯示 Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions <==請(qǐng)按 [Enter] 按鍵 # Global parameters [global] dos charset = cp950 display charset = utf8 workgroup = VBIRDHOUSE netbios name = VBIRDSERVER server string = This is vbird's samba server security = SHARE log file = /var/log/samba/%m.log max log size = 50 socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 dns proxy = No [temp] comment = Temporary file space path = /tmp read only = No guest ok = Yes
上頭是語法驗(yàn)證與各個(gè)項(xiàng)目的列出,如果你下達(dá) testparm 卻出現(xiàn)如下畫面那就是有問題:
Unknown parameter encountered: "linux charset" <==錯(cuò)誤的設(shè)定 Ignoring unknown parameter "linux charset" Processing section "[temp]" Loaded services file OK. Server role: ROLE_STANDALONE Press enter to see a dump of your service definitions
如果發(fā)現(xiàn)上述的錯(cuò)誤,這表示你的 smb.conf 有個(gè) linux charset 的設(shè)定參數(shù),不過 smb.conf 其實(shí)是不支援這個(gè)參數(shù)的。 可能的問題是 samba 2.x 與 samba 3.x 有一些項(xiàng)目的支援已經(jīng)不存在了,所以你使用舊版的 2.x 設(shè)定檔來 3.x 上頭執(zhí)行時(shí),就會(huì)出現(xiàn)問題。此外,『打字錯(cuò)誤』也是很常見的一個(gè)問題吶!趕緊測(cè)試一下語法先, 然後根據(jù) smb.conf 有的項(xiàng)目去進(jìn)行修改吧。
如果你想要瞭解 samba 的所有設(shè)定 (包括沒有在 smb.conf 裡頭設(shè)定的預(yù)設(shè)值),可以使用 testparm -v 來作詳細(xì)的輸出, 資料相當(dāng)?shù)呢S富,透過這個(gè)您也可以知道你的主機(jī)環(huán)境設(shè)定為何呢! ^_^
5. 啟動(dòng)與觀察
啟動(dòng)實(shí)在太簡(jiǎn)單了,利用預(yù)設(shè)的 CentOS 啟動(dòng)方式來處理即可。
[root@linux ~]# /etc/init.d/smb start [root@linux ~]# netstat -tlunp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 10338/smbd tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 10338/smbd udp 0 0 192.168.1.254:137 0.0.0.0:* 10343/nmbd udp 0 0 0.0.0.0:137 0.0.0.0:* 10343/nmbd udp 0 0 192.168.1.254:138 0.0.0.0:* 10343/nmbd udp 0 0 0.0.0.0:138 0.0.0.0:* 10343/nmbd
特別注意,在 Samba (網(wǎng)芳) 當(dāng)中預(yù)設(shè)會(huì)啟動(dòng)多個(gè)埠口,這包括資料傳輸?shù)?TCP 埠口 (139, 445), 以及進(jìn)行 NetBIOS 名稱解析之類工作的 UDP 埠口 (137, 138),所以你才會(huì)看到很多資料的。 那麼能否僅支援 139 這個(gè)必要的埠口,關(guān)閉 445 呢?可以啊~透過 testparm -v 的觀察, 可以發(fā)現(xiàn)『 smb ports = 445 139 』這個(gè)設(shè)定值指定兩個(gè)埠口的,因此你可以在 smb.conf 增加這個(gè)設(shè)定值, 並改為 smb ports = 139 即可。不過,建議先保留預(yù)設(shè)值啦!
6. 用戶端的觀察
關(guān)於用戶端的觀察我們會(huì)在後續(xù)進(jìn)行介紹。在這裡僅是說明如何確定我們的 Samba 設(shè)定與服務(wù)有順利的在運(yùn)作。 我們可以在本機(jī)上透過 smbclient 這支程式來處理,他的基本語法是這樣的:
[root@linux ~]# smbclient -L [//主機(jī)或IP] [-U 使用者帳號(hào)] 參數(shù): -L :僅查閱後面接的主機(jī)所提供分享的目錄資源; -U :以後面接的這個(gè)帳號(hào)來嘗試取得該主機(jī)的可使用資源
由於在這個(gè)範(fàn)例當(dāng)中我們並沒有規(guī)範(fàn)使用者的安全等級(jí),所以必須要使用 -U 這個(gè)參數(shù)。 因此你可以這樣看看:
[root@linux ~]# smbclient -L //127.0.0.1 Password: <==這裡按一下 [Enter] 吧! Domain=[VBIRDHOUSE] OS=[Unix] Server=[Samba 3.0.10-1.4E.9] Sharename Type Comment --------- ---- ------- temp Disk Temporary file space IPC$ IPC IPC Service (This is vbird's samba server) ADMIN$ IPC IPC Service (This is vbird's samba server) Domain=[VBIRDHOUSE] OS=[Unix] Server=[Samba 3.0.10-1.4E.9] Server Comment --------- ------- VBIRDSERVER This is vbird's samba server Workgroup Master --------- ------- VBIRDHOUSE VBIRDSERVER
上表輸出的資訊當(dāng)中,分享的目錄資源 (Sharename) 就是在 smb.conf 當(dāng)中設(shè)定的 [temp] 名稱囉! 因此在這裡的意思是:任何人都可以進(jìn)入 //127.0.0.1/temp 這個(gè)目錄當(dāng)中, 而這個(gè)目錄在 Linux 系統(tǒng)其實(shí)是 /tmp 目錄。至於那個(gè) IPC$ 及 ADMIN$ 則是為了要應(yīng)付 Windows 環(huán)境所必須要存在的項(xiàng)目就是了。
基本上,到此為止咱們就設(shè)定好一個(gè)簡(jiǎn)單的不需要密碼即可登入的 Samba 主機(jī)了! 你可以先行到用戶端軟體功能的部分進(jìn)行掛載測(cè)試。 底下我們則預(yù)計(jì)以簡(jiǎn)易的需要密碼才能夠登入 Samba 的方式來設(shè)計(jì)一個(gè)範(fàn)例吧!
安全等級(jí)為使用者的工作群組設(shè)定
設(shè)定一部不需密碼即可登入的 Samba server 是非常簡(jiǎn)單的,不過, 您總不希望某些有機(jī)密性質(zhì)的資料放在不設(shè)防的網(wǎng)芳中讓大家查閱吧? 舉例來說,你總不希望你的家目錄被人家隨意瀏覽吧?家目錄內(nèi)可能有你自己的情書呢!^_^
那怎麼辦?沒關(guān)係,我們可以透過 Samba 主機(jī)提供的認(rèn)證方式來進(jìn)行使用者權(quán)限的給予, 也就是說,你在用戶端連線到主機(jī)時(shí),必須要輸入正確的帳號(hào)與密碼後,才能夠登入 Samba 主機(jī)查閱到你自己的資料! 那會(huì)不會(huì)很難?。坎粫?huì)啦! Samba 本身就提供一個(gè)小程式來幫助我們處理密碼的建立了, 整個(gè)流程還不太難。比較重要的是Samba 使用者帳號(hào)必須要存在於 Linux 系統(tǒng)當(dāng)中 (/etc/passwd), 但是 Samba 的密碼與 Unix 的密碼檔案並不相同。這就比較有點(diǎn)小麻煩~ 沒關(guān)係,就讓我們依樣畫葫蘆來處理一下這個(gè)部分的設(shè)定吧!
主機(jī)預(yù)計(jì)分享的資源狀態(tài)
剛剛前一個(gè)免密碼時(shí)的 smb.conf 設(shè)定繼續(xù)保留;
針對(duì) NetBIOS name 的解析方式依序由 lmhosts, broadcast 及 host 來進(jìn)行解析;
安全等級(jí)提升為 user 等級(jí);
密碼檔案放置到 /etc/samba/smbpasswd 這個(gè)檔案當(dāng)中;
密碼必須要加密;
每個(gè)可使用 samba 的使用者擁有自己的家目錄之外, users 這個(gè)群組的使用者可以進(jìn)入 /home/public 目錄中, 且在該目錄下 users 這個(gè)群組的所有人可具有寫入的權(quán)限喔!
好了,開始一步步的處理吧!
1. 設(shè)定 lmhosts
這部分與前一小節(jié)的設(shè)定相同,請(qǐng)自行前往查閱喔!
2. 開始設(shè)定 smb.conf 檔案
在這個(gè)範(fàn)例的設(shè)定檔當(dāng)中,我們會(huì)新增幾個(gè)參數(shù),新增的參數(shù)部分會(huì)用特殊字體圈起來, 引用之前參數(shù)的部分則為一般字體。請(qǐng)交互參考看看囉:
[root@linux ~]# vi /etc/samba/smb.conf [global] workgroup = vbirdhouse netbios name = vbirdserver server string = This is vbird's samba server unix charset = utf8 display charset = utf8 dos charset = cp950 log file = /var/log/samba/%m.log max log size = 50 socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 dns proxy = no template shell = /bin/false winbind use default domain = no # 與密碼有關(guān)的設(shè)定項(xiàng)目,包括密碼檔案所在與加密與否喔! security = user encrypt passwords = yes smb passwd file = /etc/samba/smbpasswd # 與 NetBIOS name 名稱解析有關(guān)的設(shè)定 name resolve order = lmhosts bcast host # 新增的每個(gè)使用者家目錄及群組用戶哩! [homes] comment = Home directories browseable = no writable = yes valid users = %S create mode = 0664 directory mode = 0775 [public] comment = the user groups work directory path = /home/public public = yes writable = yes valid users = @users [temp] comment = Temporary file space path = /tmp read only = no public = yes
[global] 部分
在新增的資料部分,主要是與密碼檔案有關(guān)啦!包括安全等級(jí)設(shè)定為使用本機(jī)的密碼驗(yàn)證,亦即是『 security = user 』 那個(gè)項(xiàng)目,而且加上了密碼加密。至於 Samba 使用的密碼檔預(yù)設(shè)就是 /etc/samba/smbpasswd 這個(gè), 為了增加自己的記憶,乾脆直接寫到 smb.conf 當(dāng)中即可。
至於那個(gè)『 name resolve order 』就有趣了!他說明的是『這部 Samba 主機(jī)針對(duì) NetBIOS name 的解析方式』, 主要的解析方式有幾種:
lmhosts:直接以 lmhosts 這個(gè)檔案的內(nèi)容來對(duì)照;
wins:利用一部可管理 Windows 網(wǎng)芳的主控電腦來紀(jì)錄,本 Samba 主機(jī)向該部主機(jī) (wins server) 要求 NetBIOS 名稱解析結(jié)果;
host:透過 /etc/hosts 或者是 NIS, DNS 等方式來處理 NetBIOS name 的結(jié)果;
bcast:在區(qū)網(wǎng)中直接透過 NetBIOS 的廣播功能處理,亦即是向所有 Samba 主機(jī)介面的同一網(wǎng)域主機(jī)發(fā)出名稱解析的需求, 舉例來說咱們的 Samba 主機(jī)為 192.168.1.254/24 ,則以 bcast 解析 NetBIOS name 時(shí),我們的伺服器會(huì)主動(dòng)向 192.168.1.0/24 發(fā)送出解析封包的要求啊。
我們修改了預(yù)設(shè)值,讓 Samba 僅透過 lmhosts, bcast 及 host 的方式進(jìn)行主機(jī)名稱的解析啊!
[homes] 部分
至於新增的目錄方面,[homes] 是個(gè)比較特殊的分享名稱,他代表 Linux 主機(jī)上頭的使用者家目錄。 我們知道 [homes] 代表的是分享目錄的資源名稱, 但你總不希望使用 Samba 時(shí)找到的資源分享名稱為 //127.0.0.1/homes 吧? 所以才會(huì)有『 valid users = %S 』這個(gè)設(shè)定值,那個(gè) %S 代表擁有可登入 Samba 的所有使用者, 且當(dāng)他登入後,那個(gè) [homes] 會(huì)變成 [帳號(hào)] , 請(qǐng)至前一小節(jié)的變數(shù)部分查詢相關(guān)的說明。而且使用者的家目錄是除了使用者本人外, 並不會(huì)開放給其他人瀏覽的喔 (browseable = no),另外他的 umask 為 002,因?yàn)榻⑿聶n (create mode) 預(yù)設(shè)權(quán)限為 0664 ,而建立新目錄 (directory mode) 則為 0775 之故。
[public] 部分
另一個(gè)新增的分享資源比較有趣,我們命名為 [public] ,指向的目錄為 /home/public , 有趣的地方在於使用的 valid users = @users 這個(gè)設(shè)定項(xiàng)目,加上 @ 之後的名稱代表著群組之意,意思是說,在 Linux 主機(jī)上面可使用 Samba 的帳號(hào)中,只要該帳號(hào)支援 users 這個(gè)群組, 那麼理論上他就能夠進(jìn)入 /home/public 目錄進(jìn)行存取的權(quán)限。不過能否順利的存取檔案還與 Linux 最底層的檔案權(quán)限有關(guān)。且任何人均可查閱到我們的主機(jī)有提供 [public] 這個(gè)分享資源 (public = yes 之故)。
例題:
在上面的這個(gè)設(shè)定檔當(dāng)中有提到分享出 /home/public 這個(gè)目錄, 請(qǐng)問這個(gè)目錄的權(quán)限應(yīng)該如何設(shè)定才是符合我們 Samba 案例的要求?
答: 在這個(gè)案例當(dāng)中我們提到任何具有 users 群組的使用者都能夠完整的存取 /home/public , 所以這個(gè)目錄的群組應(yīng)該屬於 users ,且權(quán)限至少需為 770 才行。如果 /home/public 預(yù)設(shè)不存在時(shí), 應(yīng)該要如此建立:
[root@linux ~]# mkdir /home/public [root@linux ~]# chgrp users /home/public [root@linux ~]# chmod 770 /home/public
這樣當(dāng)屬於 users 群組的使用者進(jìn)入到此目錄後,才能夠進(jìn)行讀寫的功能。
3. 設(shè)定可使用 Samba 的帳號(hào)與密碼
設(shè)定使用者帳號(hào)是很重要的一環(huán),因?yàn)樵O(shè)定錯(cuò)誤的話,當(dāng)然也就任何人都沒有辦法登入的! 在這裡我們必須先要說明一下 Linux 的檔案系統(tǒng)與 SAMBA 設(shè)定的使用者登入權(quán)限的相關(guān)性!
在 Linux 這個(gè)系統(tǒng)下,任何程序都需要取得 UID 與 GID (User ID 與 Group ID) 的身份之後,才能夠擁有該身份的權(quán)限,也才能夠適當(dāng)?shù)倪M(jìn)行存取檔案等動(dòng)作!
關(guān)於 Linux 這個(gè)系統(tǒng)的 UID 與 GID 與帳號(hào)的相對(duì)關(guān)係,一般記錄在 /etc/passwd 當(dāng)中,當(dāng)然也能透過 NIS, ldap 等方式來取對(duì)應(yīng);
SAMBA 僅只是 Linux 底下的一套軟體,使用 SAMBA 來進(jìn)行 Linux 檔案系統(tǒng)時(shí),還是需要以 Linux 系統(tǒng)下的 UID 與 GID 為準(zhǔn)則!
如果上面這幾點(diǎn)說明您沒有問題了,現(xiàn)在就來看一下當(dāng)我們?cè)?Windows 電腦上面以網(wǎng)路上的芳鄰來連接 Linux 並且進(jìn)行資料的存取時(shí),會(huì)是怎樣的一個(gè)情況呢?
我們需要透過 SAMBA 所提供的功能來進(jìn)行 Linux 的存取,而 Linux 的存取是需要取得 Linux 系統(tǒng)上面的 UID 與 GID 的,因此,我們登入 SAMBA 主機(jī)時(shí),所利用 SAMBA 取得的其實(shí)是 Linux 系統(tǒng)裡面的相關(guān)帳號(hào)!這也就是說,在 SAMBA 上面的使用者帳號(hào),必須要是 Linux 帳號(hào)中的一個(gè)! 所以說,在不考慮 NIS 或 LDAP 等其他帳號(hào)的驗(yàn)證方式,單純以 Linux 本機(jī)帳號(hào) (/etc/passwd) 作為身份驗(yàn)證時(shí), 在 Samba 主機(jī)所提供可登入的帳號(hào)名稱,必須要存在於 /etc/passwd 當(dāng)中! 這是一個(gè)很重要的概念!例如你要先有 dmtsai 在 /etc/passwd 當(dāng)中後,才能將 dmtsai 加入 Samba 的使用者當(dāng)中。這都是很基本的帳號(hào)權(quán)限概念,如果您覺得這裡閱讀方面有問題, 若不考慮鳥哥的解釋不良,表示你必須要回去讀讀基礎(chǔ)篇了~ ^_^
好了,假設(shè)我的機(jī)器裡面已經(jīng)有 dmtsai, nikky, tang 等三人,不過我只想要讓 dmtsai 及 nikky 使用 SAMBA 而已的話, 那麼如何將這兩個(gè)使用者加入帳號(hào)密碼管理檔案 /etc/samba/smbpasswd 當(dāng)中呢?很簡(jiǎn)單的啦!這樣做即可:
1. 先確認(rèn)密碼檔是否存在 [root@linux ~]# ls -l /etc/samba/smbpasswd -rw------- 1 root root 104 Dec 25 23:13 /etc/samba/smbpasswd # 注意??!要這樣的權(quán)限才可以喔!如果你的 Linux 沒有這個(gè)檔案,請(qǐng)自行建立。 2. smbpasswd 指令功能 [root@linux ~]# smbpasswd [-adem] username 參數(shù)說明: : 如果都沒有加上任何一個(gè)參數(shù),例如『 smbpasswd dmtsai 』時(shí),這表示: 修改 SAMBA 密碼檔 (/etc/samba/smbpasswd) 裡面的 dmtsai 這個(gè)帳號(hào)的密碼! 也就是說,密碼檔裡面已經(jīng)存在一個(gè) dmtsai 的帳號(hào)了! -a : 在 smbpasswd 密碼檔裡面新增一個(gè)使用者 -d : 讓在 smbpasswd 密碼檔裡面的某個(gè)帳號(hào)的使用者暫時(shí)無法使用 SAMBA 當(dāng)多了 -d 的參數(shù)時(shí),在 smbpasswd 裡面某個(gè)欄位會(huì)多出一個(gè) D 的參數(shù), 代表該帳號(hào)目前無法使用喔! -e : 與 -d 參數(shù)相反,讓某個(gè)帳號(hào)恢復(fù)使用! -m : 該 username 為機(jī)器代碼 (Machine Account),這個(gè)與 domain model 有關(guān)! 2.1 開始新增使用者吧! [root@linux ~]# smbpasswd -a dmtsai New SMB password: <==在這裡輸入密碼!這個(gè)密碼不一定要與 /etc/shadow 相同 Retype new SMB password: <==再輸入一次 Added user dmtsai. [root@linux ~]# cat /etc/samba/smbpasswd dmtsai:501:1B0F61E20F8F2D11AAD3B435B51404EE:F7EDDB3F55CC5DB1FE00D7F755028491: [U ]:LCT-4590969D: # 上面的資料為同一行的資料喔!資料為加密過的! 2.2 如果要暫時(shí)拒絕一個(gè)使用者的登入,可以這樣做: [root@linux ~]# smbpasswd -d dmtsai [root@linux ~]# cat /etc/samba/smbpasswd dmtsai:501:1B0F61E20F8F2D11AAD3B435B51404EE:F7EDDB3F55CC5DB1FE00D7F755028491: [DU ]:LCT-4590969D: # 就是這個(gè) D !代表的就是暫時(shí) disable 囉! [root@linux ~]# smbpasswd -e dmtsai
接下來你可以透過相同的方式來新增 nikky 這個(gè)使用者的 Samba 密碼,那這兩個(gè)人就能夠使用 Samba 囉。 然後我們就能夠開始準(zhǔn)備來重新啟動(dòng) Samba 並且測(cè)試看看囉!
4. 重新啟動(dòng) Samba 並測(cè)試
在經(jīng)過重新啟動(dòng)後,我們所進(jìn)行的修訂才會(huì)生效。然後使用 smbclient 來檢查看看,是否不同身份會(huì)有不一樣的瀏覽結(jié)果呢? 趕緊看看:
[root@linux ~]# testparm # 這個(gè)動(dòng)作很重要!每次都要進(jìn)行!確認(rèn)你的語法無誤後再開始! [root@linux ~]# /etc/init.d/smb restart [root@linux ~]# smbclient -L //127.0.0.1 Password: <==直接按下 [Enter] 即可。 Anonymous login successful <==是匿名登入喔! Domain=[VBIRDHOUSE] OS=[Unix] Server=[Samba 3.0.10-1.4E.9] Sharename Type Comment --------- ---- ------- public Disk the user groups work directory temp Disk Temporary file space IPC$ IPC IPC Service (This is vbird's samba server) ADMIN$ IPC IPC Service (This is vbird's samba server) [root@linux ~]# smbclient -L //127.0.0.1 -U dmtsai Password: <==輸入 dmtsai 在 smbpasswd 檔案中所建立的密碼喔! Domain=[VBIRDSERVER] OS=[Unix] Server=[Samba 3.0.10-1.4E.9] Sharename Type Comment --------- ---- ------- public Disk the user groups work directory temp Disk Temporary file space IPC$ IPC IPC Service (This is vbird's samba server) ADMIN$ IPC IPC Service (This is vbird's samba server) dmtsai Disk Home directories
由上表我們可以發(fā)現(xiàn),經(jīng)由不同的身份登入可以取得不一樣的瀏覽資料, 所以在使用上面需要特別留意喔!
5. 關(guān)於權(quán)限的再說明
有的時(shí)候你會(huì)發(fā)現(xiàn),明明在 smb.conf 當(dāng)中已經(jīng)設(shè)定了 writable 可寫入,使用者登入的身份也沒有問題, 為啥就是無法寫入呢?是否是伺服器設(shè)定哪裡還有問題???非也非也!主要的問題常常是來自於 Linux 檔案系統(tǒng)的權(quán)限啦!
舉上面的例子來說好了,我們?cè)?smb.conf 當(dāng)中設(shè)定 [public] 為可寫入,亦即 /home/public 是可寫入的。 假設(shè) dmtsai 屬於 users 這個(gè)群組,因此以 dmtsai 登入 SAMBA 伺服器後,對(duì)於 /home/public 應(yīng)該是具有可以讀寫的能力的!但是,如果你以 root 的身份建立 /home/public 卻又忘記修改權(quán)限的話, 此時(shí) /home/public 是無法讓 users 這個(gè)群組寫入的,因此 dmtsai 這個(gè)使用者當(dāng)然不具有寫入的能力。 這樣說,瞭解鳥哥想要說啥了嗎?注意注意喔! ^_^
上面的設(shè)定案例應(yīng)該蠻足以提供一般家庭用的環(huán)境中進(jìn)行設(shè)定了!如果您還要擴(kuò)充分享的目錄與能夠登入的使用者, 可以這樣做:
利用編輯 smb.conf 來多開放其他的目錄,並且特別注意 Linux 在該目錄下的權(quán)限喔!請(qǐng)使用 chown 與 chmod 吧!
利用 smbpasswd 來新增其他使用者到 /etc/samba/smbpasswd 裡面去,如果該帳號(hào)並沒有出現(xiàn)在 /etc/passwd 裡面,請(qǐng)先以 useradd 新增該帳號(hào);
不論進(jìn)行完任何的設(shè)定,請(qǐng)先以 testparm 進(jìn)行確認(rèn),之後以 /etc/init.d/smb restart 來重新啟動(dòng)!
事實(shí)上,SAMBA 的一般用途就是在這個(gè)連線的模式中!多使用 SAMBA 來分享您的資源吧!鳥哥都是使用 SAMBA 來做為遠(yuǎn)端伺服器與我的工作機(jī)互通有無的重要媒介說~
設(shè)定成為印表機(jī)伺服器 (CUPS 系統(tǒng))
剛剛上面的說明大部分都是針對(duì)磁碟與目錄的分享來進(jìn)行 SAMBA 的設(shè)定,那麼 SAMBA 有沒有可能分享出裝置呢?舉個(gè)例子來說,例如那個(gè)我們?cè)谵k公室都會(huì)用到的印表機(jī)呢?如果說,能夠讓我們辦公室的 File Server 同時(shí)提供印表機(jī)列印的功能,如此一來,藉由 Linux 這個(gè)作業(yè)系統(tǒng)可以 24 小時(shí)開機(jī)的穩(wěn)定功能,我們就可以隨時(shí)進(jìn)行列印囉!所以,底下我們就以 SAMBA 進(jìn)行印表機(jī)列印功能的提供者的角度,來介紹這個(gè) smb.conf 的設(shè)定喔!
在 Linux 底下進(jìn)行列印的工具很多,不過我們這裡要介紹的僅有目前較廣為流行的 CUPS (Common Unix Printing System) 這一個(gè)。 詳細(xì)的 CUPS 安裝設(shè)定方法我們已經(jīng)在基礎(chǔ)篇的 CUPS 章節(jié)當(dāng)中提過, 所以這裡我們不再詳細(xì)說明,僅介紹大致的處理流程就是了。如果你需要較早期的 LPRng 列印系統(tǒng)的話, 建議可以參考底下的資料喔:
依瑪貓的列印文件:http://www.imacat.idv.tw/tech/lnxprint.html
鳥哥的 LPRng 簡(jiǎn)介:http://linux.vbird.org/linux_server/0370samba/0370samba.php
底下就來談一談一般常見的流程說明吧:
1 安裝印表機(jī)與確定啟動(dòng)
再次說明,並不是所有的印表機(jī)都被 Linux 所支援的,所以當(dāng)你想要連結(jié)一部印表機(jī)到 Linux 系統(tǒng)上頭時(shí), 請(qǐng)務(wù)必到http://www.linuxprinting.org/printer_list.cgi 上頭去看看是否有被支援喔! 如果沒有被支援,那就換一部印表機(jī)吧!不要進(jìn)行垂死的掙扎了....
如果你的印表機(jī)連接埠為使用 USB 或者是平行序列埠的話,那麼當(dāng)你連接上印表機(jī)後, 可以利用底下的方式測(cè)試看看是否成功的連接上了:
[root@linux ~]# echo "Hello printer" > /dev/lp0 <==平行序列埠 [root@linux ~]# echo "Hello printer" > /dev/usb/lp0 <==USB 埠
如果印表機(jī)有回應(yīng),這表示 OK 的啦!你可以進(jìn)行底下的工作了。如果你的印表機(jī)為網(wǎng)路印表機(jī)呢? 就是說印表機(jī)有 IP 的情況下,那麼該印表機(jī)就不需要加入 Samba 啦!因?yàn)樵撚”頇C(jī)本身就可以直接提供用戶端連接, 根本不必透過 Samba 來提供網(wǎng)路連線的嘛!當(dāng)然啦,如果你有特殊需求, 將網(wǎng)路印表機(jī)加入 Samba server 來提供給網(wǎng)芳中的其他用戶,也是可以的啦!底下直接來看看如何使用 CUPS 吧。
2. 設(shè)定 CUPS 的印表機(jī)
請(qǐng)先確認(rèn)你的 CUPS 已經(jīng)安裝妥當(dāng)了,原則上,你必須要有底下兩個(gè)套件存在才行:
cups-libs
cups
接下來我們可以開始設(shè)定 CUPS 了!設(shè)定的原則是這樣的:
我需要讓 192.168.1.0/24 這個(gè)網(wǎng)域可以使用印表機(jī)
我需要讓 192.168.1.0/24 及 127.0.0.0/8 可以管理 CUPS 系統(tǒng)
然後開始這樣做:
[root@linux ~]# vi /etc/cups/cupsd.conf # 底下這個(gè)項(xiàng)目在控制誰可以使用 CUPS 系統(tǒng),約在 772 行左右, # 找到這些資料並增加一筆記錄: <Location /> Order Deny,Allow Deny From All Allow From 127.0.0.1 Allow From 192.168.1.0/24 </Location> # 底下的項(xiàng)目則在設(shè)定誰可以登入 CUPS 系統(tǒng)的管理介面? # 約在 830 行左右,找到這些資料並進(jìn)行一些細(xì)部修改: <Location /admin> #AuthType Basic #AuthClass System Order Deny,Allow Deny From All Allow From 127.0.0.1 Allow From 192.168.1.0/24 </Location> # 在最後一行的地方加上這一句 Listen 0.0.0.0:631 # 上面在設(shè)定一個(gè)不需要密碼即可登入的管理環(huán)境,是個(gè)很粗糙的介面, # 建議您自行處理一下認(rèn)證問題,請(qǐng)參考基礎(chǔ)篇的說明。
另外,為了要進(jìn)行 Windows 相關(guān)軟體所傳來的列印資料,所以我們還需要對(duì) CUPS 作一些額外的設(shè)定, 過程也是很簡(jiǎn)單的:
[root@linux ~]# vi /etc/cups/mime.convs # 大概在最後幾行的地方,找到這一行,將註解拿掉! application/octet-stream application/vnd.cups-raw 0 - [root@linux ~]# vi /etc/cups/mime.types # 同樣也是在最後面幾行的地方,也是將註解拿掉即可! application/octet-stream
設(shè)定完畢後就可以開始來啟動(dòng) cups 系統(tǒng),可以這樣做:
[root@linux ~]# /etc/init.d/cups start [root@linux ~]# netstat -tunlp | grep '631' tcp 0 0 0.0.0.0:631 0.0.0.0:* LISTEN 18271/cupsd udp 0 0 0.0.0.0:631 0.0.0.0:* 18271/cupsd
那個(gè) 631 的埠口就是 CUPS 所啟動(dòng)的啦!然後我們可以開始設(shè)定印表機(jī)了! 由於 CUPS 支援很多不同的印表機(jī)連接埠,每種連接埠都不一樣,常見的有:
USB 連接埠: usb:/dev/usb/lp0
平行序列埠: parallel:/dev/lp0
網(wǎng)路印表機(jī): ipp://ip/印表機(jī)型號(hào)
網(wǎng)路芳鄰印表機(jī): smb://user:password@host/printer
假設(shè)我們的 Samba 上頭接了一部 usb 連線的印表機(jī),而我要將這部印表機(jī)取名為 hplaser2300 時(shí), 你可以使用瀏覽器連接到 Samba 主機(jī)上頭,必須注意到網(wǎng)址喔:
圖三、CUPS 的管理介面示意圖
如上圖三所示,先在網(wǎng)址列的地方務(wù)必要輸入埠口才行!然後按下箭頭『 2 』所指的地方, 亦即是『Manage Printer』之後再按下『Add printer』的按鈕,就會(huì)出現(xiàn)如下畫面, 記得要填寫正確的資料喔!
圖四、CUPS 的管理介面示意圖
然後如下圖所示,選擇正確的裝置所在處!我們假設(shè)使用的是 USB 的印表機(jī)連接埠:
圖五、CUPS 的管理介面示意圖
之後就是選擇正確的型號(hào)囉,假設(shè)這部印表機(jī)為 HP 所出產(chǎn)的:
圖六、CUPS 的管理介面示意圖
選擇標(biāo)準(zhǔn)的雷射印表機(jī)驅(qū)動(dòng)程式吧!
圖七、CUPS 的管理介面示意圖
最後都成功後,就會(huì)找到如下所示的畫面了。
圖八、CUPS 的管理介面示意圖
到此為止我們可以假設(shè)你的 CUPS 已經(jīng)有一部印表機(jī)存在了,即使該印表機(jī)目前無法工作, 但是就是有一部印表機(jī)嘛!^_^!接下來看看如何將他連結(jié)到咱們的 Samba 伺服器中吧!
3. 在 smb.conf 當(dāng)中加入印表機(jī)的支援
然後開始告訴 Samba 將這部印表機(jī)給他分享出去吧!你需要這樣處理:
[root@linux ~]# vi /etc/samba/smb.conf [global] .....其他省略..... # 這裡列出的則是印表機(jī)相關(guān)的資料啊! printcap name = cups load printers = yes printing = cups [printers] <==這個(gè)分享的資源名稱一定是 printers comment = All Printers printable = yes <==可以進(jìn)行列印的功能 browsable = yes <==可以讓其他人瀏覽 public = yes valid users = @users dmtsai <==可使用的人員有這些 path = /var/spool/samba <==列印佇列的地方,暫存資料 printer admin = dmtsai <==這是印表機(jī)管理員!需要可使用 SAMBA 者 .....其他省略.....
基本上透過這樣的設(shè)定你的 Samba 就能夠順利的提供印表機(jī)的服務(wù)了! 不過可惜的是,Windows 用戶端依舊得要安裝印表機(jī)的驅(qū)動(dòng)程式才能夠使用 Samba 所提供的印表機(jī), 此時(shí)真是麻煩兼討厭啊~有沒有可能讓 Samba 主動(dòng)的提供驅(qū)動(dòng)程式給使用者,這樣一來用戶端就不需要額外去找驅(qū)動(dòng)程式囉! 是可以的,透過 Samba 3.x 即可處理!
或許你會(huì)想,印表機(jī)的型號(hào)這麼多,那麼 Linux 該如何提供這些印表機(jī)的驅(qū)動(dòng)程式???豈不麻煩? 還好啦, CUPS 主要是透過利用 Postscript 的列印語言與印表機(jī)溝通的,因此用戶端只要取得 postscript 的驅(qū)動(dòng)程式他們就能夠使用咱們的 Samba 伺服器所提供的印表機(jī)了!如此一來, 不論印表機(jī)的型號(hào)為何,只要他們能夠支援 Postscript 的列印格式,OK 搞定!而且 CUPS 官網(wǎng)本身就有提供 CUPS 的 Postscript 驅(qū)動(dòng)程式囉!可以到底下的連結(jié)去下載:
支援多種 CUPS 版本:http://ftp.easysw.com/pub/cups/windows/
支援 CUPS 1.2 以上版本:http://www.cups.org/windows/software.php
由於 CentOS 4.x 使用的是 1.1.x 版本,所以鳥哥下載的是 cups-samba-5.0rc3.tar.gz 這個(gè)檔案, 接下來我們要將這個(gè)檔案解壓縮,然後將相關(guān)的程式給他安裝到正確的目錄去。 不過您得要注意的是,除了這個(gè)驅(qū)動(dòng)程式外,要支援 Windows 2000/xp 的用戶端, 你還得到 Windows XP 的底下目錄去下載幾個(gè)檔案:
C:\WINDOWS\system32\spool\drivers\w32x86\3 裡面的 PS 開頭的檔案通通下載下來,應(yīng)該有四個(gè)檔案的,請(qǐng)將他複製成為小寫的檔案,並且放置到你 Samba 主機(jī)上的 /usr/share/cups/drivers/ 目錄下,然後將 cups-samba-5.0rc3.tar.gz 解壓縮後執(zhí)行 ./cups-samba.install 檔案, 就能夠?qū)Ⅱ?qū)動(dòng)程式通通安裝到 /usr/share/cups/drivers/ 目錄下了!這就是基本的驅(qū)動(dòng)程式說! 在鳥哥的這個(gè)目錄底下至少含有這幾個(gè)檔案就是了:
[root@linux ~]# ll /usr/share/cups/drivers -r--r--r-- 1 root root 14234 Sep 24 2002 cups5.hlp -r--r--r-- 1 root root 280268 Jan 4 2004 cupsdrv5.dll -r--r--r-- 1 root root 219540 Jan 4 2004 cupsui5.dll -rw-r--r-- 1 root root 129024 Dec 27 14:18 ps5ui.dll -rw-r--r-- 1 root root 455168 Dec 27 14:18 pscript5.dll -rw-r--r-- 1 root root 27568 Dec 27 14:18 pscript.hlp -rw-r--r-- 1 root root 792644 Dec 27 14:18 pscript.ntf
上述的檔案鳥哥將他打包成為一個(gè)檔案了,你可以在底下的連結(jié)下載:
http://linux.vbird.org/linux_server/0370samba/cups-samba-windows.tgz 不過您得注意,這個(gè)檔案內(nèi)的 Windows 資料是由 Windows XP 上面捉來的,所以對(duì)於 Windows 98/ME 是沒有作用的。 您得自行上網(wǎng)查閱相關(guān)的資料下載方式喔。 接下來我們必須要在 smb.conf 裡面增加一筆新的分享資料,這個(gè)分享資料必須是 [print$] 名稱才行! 有點(diǎn)類似這樣啦:
[root@linux ~]# vi /etc/samba/smb.conf .....其他省略..... [print$] comment = Printer drivers path = /etc/samba/drivers <==存放印表機(jī)驅(qū)動(dòng)程式的目錄 browseable = yes read only = yes write list = dmtsai <==這個(gè)驅(qū)動(dòng)程式的管理員 .....其他省略..... [root@linux ~]# mkdir /etc/samba/drivers [root@linux ~]# chown dmtsai /etc/samba/drivers # 因?yàn)槲覀儗⒂”頇C(jī)管理員以及驅(qū)動(dòng)程式管理員的身份設(shè)定為 dmtsai 這個(gè)使用者, # 因此存放的目錄也要改變一下權(quán)限才行吶! [root@linux ~]# testparm <==測(cè)試語法 [root@linux ~]# /etc/init.d/smb restart <==重新啟動(dòng) [root@linux ~]# smbclient -L //127.0.0.1 -U dmtsai Password: <==輸入密碼先 Domain=[VBIRDSERVER] OS=[Unix] Server=[Samba 3.0.10-1.4E.9] Sharename Type Comment --------- ---- ------- print$ Disk Printer drivers hplaser2300 Printer HP Laser Jet 2300 printer # 瞧!有看到一部印表機(jī)以及驅(qū)動(dòng)程式所在的分享資料囉!
現(xiàn)在我們的要告知 Samba 說,我們的 CUPS 可提供 Windows 2000/XP 用戶端的驅(qū)動(dòng)程式, 所以用戶不需要自行設(shè)定他們的驅(qū)動(dòng)程式哩!要由 cups 告知 Samba 是由 cupsaddsmb 這個(gè)指令來搞定的, 整個(gè)指令的執(zhí)行很簡(jiǎn)單的:
[root@linux ~]# cupsaddsmb -H [SAMBA 主機(jī)名] -h [CUPS 主機(jī)名] > -a -v -U [使用者帳號(hào)] 參數(shù): -H :後續(xù)接的是 Samba 主機(jī)名,本機(jī)的話可以直接用 localhost 即可; -h :後續(xù)接的為 CUPS 的主機(jī)名,同樣的可使用 localhost 即可; -a :搜尋所有可用的印表機(jī); -v :列出更多的資訊; -U :印表機(jī)管理員 範(fàn)例:利用前面的說明將印表機(jī)驅(qū)動(dòng)程式掛上 SAMBA [root@linux ~]# cupsaddsmb -H localhost -U dmtsai -a -v Password for dmtsai required to access localhost via SAMBA: <==輸入 dmtsai 密碼 # 這裡會(huì)閃過很多的訊息,說明已經(jīng)安裝了某些資訊,底下鳥哥僅列出簡(jiǎn)單的訊息而已。 putting file /usr/share/cups/drivers/pscript5.dll as \W32X86/pscript5.dll (1438.5 kb/s) (average 1342.5 kb/s) Printer Driver hplaser2300 successfully installed. Succesfully set hplaser2300 to driver hplaser2300. [root@linux ~]# ll /etc/samba/drivers drwxr-xr-x 3 dmtsai dmtsai 4096 Dec 27 14:40 W32X86
最後在驅(qū)動(dòng)程式的存放目錄會(huì)多出一個(gè) W32X86 的目錄,你可以查詢一下該目錄的內(nèi)容, 那就是預(yù)計(jì)要給用戶端使用的驅(qū)動(dòng)程式啦!這樣就搞定了!不過,為了將所有的資料通通驅(qū)動(dòng), 建議您將 CUPS 及 SAMBA 通通重新啟動(dòng)吧!
[root@linux ~]# /etc/init.d/cups restart [root@linux ~]# /etc/init.d/smb restart
4. 一些問題的克服:
如果一切順利的話,你在 Windows 用戶端應(yīng)該可以順利的連接到印表機(jī)囉! 開心吧!不過,如果你曾經(jīng)印錯(cuò)資料,那麼該如何進(jìn)入 Linux 的 Samba 主機(jī)將該資料移除呢? 你最好知道底下的幾個(gè)指令,關(guān)於這些指令的進(jìn)階用法則請(qǐng)自行給他 man man 看了:
[root@linux ~]# lpstat -a hplaser2300 accepting requests since Jan 01 00:00 # 列出所有可用的印表機(jī)狀態(tài) [root@linux ~]# lpq hplaser2300 is ready no entries # 列出印表機(jī)的工作,若有列印工作存在時(shí),會(huì)如下所示: hplaser2300 is ready and printing Rank Owner Job File(s) Total Size active dmtsai 5 smbprn.00000003 測(cè)試頁 42954752 bytes [root@linux ~]# lprm all # 移除所有等待中的列印工作!
列印工作就是這樣進(jìn)行的啦!趕緊試看看吧!
安全性管理
使用 SAMBA 其實(shí)是有一定程度的危險(xiǎn)性的,這是因?yàn)楹芏嗑W(wǎng)路攻擊的蠕蟲就是透過 NetBIOS 來攻擊的! 因此,在架設(shè)好了 SAMBA 之後,請(qǐng)記得將權(quán)限方面的工作做好!權(quán)限方面的工作除了 smb.conf 內(nèi)的設(shè)定外, Linux 檔案系統(tǒng)的 r, w, x 權(quán)限也是相當(dāng)重要的喔!我們底下就簡(jiǎn)單的介紹一下一些基本的安全性管理吧!
利用 iptables 來管理
最簡(jiǎn)單的管理登入 SAMBA 的方法就是透過 iptables 啦!詳細(xì)的說明我們已經(jīng)在防火牆章節(jié)當(dāng)中提過了,所以這裡不在詳加說明。 要知道的是,如果你僅要針對(duì)底下的範(fàn)圍開放 Samba 時(shí),可以這樣想:
僅針對(duì) 192.168.1.0/24 這個(gè)網(wǎng)域開放 SAMBA;
SAMBA 的 port 有 137~139 tcp/udp;
SAMBA 主機(jī)的網(wǎng)路卡為 eth0
所以 iptables.rule 規(guī)則當(dāng)中應(yīng)該要加入這幾項(xiàng):
iptables -A INPUT -p tcp -i eth0 -s 192.168.1.0/24 --dport 139 -j ACCEPT iptables -A INPUT -p udp -i eth0 -s 192.168.1.0/24 --dport 137:138 -j ACCEPT
當(dāng)然啦!這是很簡(jiǎn)單很簡(jiǎn)單的防火牆規(guī)則,您必須要依據(jù)您的環(huán)境自行修改 (通常修改那個(gè) 192.168.1.0/24 網(wǎng)段即可!) 。除了 iptables 必須要開放之外,您還需要將管制 daemon 是否能夠進(jìn)出的 TCP Wrappers 開放才行吶!如果萬一您看到 /etc/hosts.deny 裡面多了這一行:
[root@linux ~]# cat /etc/hosts.deny ALL : ALL
不要懷疑,很可能會(huì)造成不只 SAMBA 不能動(dòng)作而已~連其他的 daemon 都可能會(huì)無法動(dòng)作呢!所以,請(qǐng)將這一行拿掉吧! 或者是將適合的 daemon 開放在 /etc/hosts.allow 檔案裡面喔!
smb.conf 的設(shè)定值
事實(shí)上 Samba 已經(jīng)有許多防火牆?rùn)C(jī)制啦!那就是 hosts allow 及 hosts deny 這兩個(gè)參數(shù)。 通常我們只要使用 hosts allow 即可,那麼沒有寫入這個(gè)設(shè)定項(xiàng)目的其他來源就會(huì)被拒絕連線的! 舉例來說,如果你只想要讓本機(jī)、192.168.1.11, 192.168.1.21 使用 SAMBA 而已,那麼可以這樣寫:
[root@linux ~]# vi /etc/samba/smb.conf [global] # 跟安全有關(guān) hosts allow = 127. 192.168.1.11 192.168.1.21 smb ports = 139
如此一來不但只有數(shù)部主機(jī)可以登入我們的 SAMBA 伺服器,而且 Samba 只能以標(biāo)準(zhǔn)的 port 139 來連結(jié), 關(guān)閉 Windows 常用且有點(diǎn)問題的 port 445 呢!這樣會(huì)比較好一些啦! 未來如果還有人想要連結(jié)你的 Samba 時(shí),將他加入 hosts allow 後面即可! 不難吧! ^_^
利用 Quota 限制使用者空間使用
quota 是磁碟配額限制的一個(gè) daemon ,您可以依據(jù)不同的使用者來加以限制他們能夠使用的硬碟空間, 前提是『該磁碟空間必須是一個(gè)獨(dú)立的 partition 』才行,不建議針對(duì)根目錄 『 / 』進(jìn)行 quota !這也是為什麼我們?cè)谥鳈C(jī)規(guī)劃時(shí)特別建議大家獨(dú)立出一個(gè) partition 來進(jìn)行硬碟規(guī)劃的原因!關(guān)於 quota 的詳細(xì)用法在『鳥哥的 Linux 私房菜--基礎(chǔ)學(xué)習(xí)篇』裡面已經(jīng)談得很清楚了, 這裡我們不再詳談!只給大家來做個(gè)練習(xí)就是了!
例題:
在規(guī)劃主機(jī)的時(shí)候,我將 /dev/hda2 獨(dú)立一個(gè) partition 給 /home 這個(gè)目錄,現(xiàn)在想要規(guī)劃 quota 針對(duì) dmtsai 這個(gè)使用者進(jìn)行磁碟配額的限制,他的 hardlimit 為 50mb 而 softlimit 為 40mb ,請(qǐng)問整個(gè)動(dòng)作應(yīng)該如何進(jìn)行?
答: 編輯修改 /etc/fstab ,使得 /dev/hda2 這個(gè) partition 成為如下模樣:
/dev/hda2 /home ext3 defaults,usrquota,grpquota 1 1 修改完畢之後,請(qǐng)千萬記得使用 mount -a 查詢看看有沒有設(shè)定錯(cuò)誤 (上面總共只有六個(gè)欄位喔!), 這個(gè)動(dòng)作如果發(fā)生錯(cuò)誤,那麼請(qǐng)記得再次的進(jìn)行 /etc/fstab 的修改!請(qǐng)?zhí)貏e留意啊!因?yàn)閷戝e(cuò)的話, 很容易造成無法正常開機(jī)的窘境!
上述動(dòng)作確定沒有問題之後,請(qǐng)重新開機(jī)啟動(dòng) quota 的支援:
sync; sync; sync; reboot
執(zhí)行底下的指令,建立 quota 所需要的設(shè)定檔案:
quotacheck -avug 特別注意,如果上述的動(dòng)作發(fā)生『找不到設(shè)定檔』的意思的訊息時(shí),您可以這樣做:
touch /home/aquota.user; touch /home/aquota.group 然後再進(jìn)行一次 quotacheck 即可!
啟動(dòng) quota 囉:
quotaon -av
設(shè)定 bird 的磁碟配額: edquota -u dmtsai Disk quotas for user dmtsai (uid 501): Filesystem blocks soft hard inodes soft hard /dev/hdb2 32 40000 50000 8 0 0 因?yàn)槲覀冎会槍?duì)硬碟空間,不針對(duì) inode 做限制,所以只要前面的數(shù)字修訂即可!請(qǐng)注意,數(shù)字的單位為 kbytes !
關(guān)於備份
跟 SAMBA 最有關(guān)的當(dāng)然就是使用者的資訊囉!所以,您應(yīng)該要備份的就是使用者的資料,以及 Samba 相關(guān)的設(shè)定資料了!比較相關(guān)的有幾個(gè)咚咚:
/etc (因?yàn)楹?/etc/passwd 以及 /etc/samba 裡面的資料,所以建議可以全部給他備份下來 )
/home (還是可以察看一下,是否有其他非必要的!不過,一般來說,都會(huì)是備份的個(gè)人資料比較多啦!)
其他由 smb.conf 裡面設(shè)定開放的目錄。
無論如何,備份還是挺重要的!
主機(jī)安裝時(shí)的規(guī)劃與中文磁區(qū)掛載
現(xiàn)在您知道 Samba 伺服器的功能是用來作為檔案伺服器的,每個(gè)使用者都可以擁有家目錄, 並透過網(wǎng)芳的功能來連結(jié)到 Samba 伺服器中。這就有個(gè)問題啦,那就是你的使用者如果太多, 並且將他們的重要資料都放到這部 Samba 主機(jī)上頭的話,那肯定 /home 未來會(huì)有點(diǎn)不足??! 所以 /home 所在的磁碟或許可以使用大一點(diǎn)的硬碟,或者使用磁碟陣列,使用LVM 也是個(gè)不錯(cuò)的方案。 底下為簡(jiǎn)單的思考方向:
在安裝 Linux 的時(shí)候,建議不需要安裝 X Window ;
在規(guī)劃 Linux 時(shí),/home 最好獨(dú)立出一個(gè) partition ,而且硬碟空間最好能夠大一些;
/home 獨(dú)立出來的 partition 可以單獨(dú)進(jìn)行 quota 的作業(yè),以規(guī)範(fàn)每個(gè)使用者能夠使用的最大硬碟容量;
由於 SAMBA 可以做為印表機(jī)伺服器,所以建議印表機(jī)可以直接連接在 Linux 主機(jī)的列印埠 (LPT1, USB...);
由於 SAMBA 一般來說都僅針對(duì)內(nèi)部 (LAN) 主機(jī)進(jìn)行開放,所以,可能的話 SAMBA 主機(jī)直接使用內(nèi)部保留 IP 來設(shè)定即可,當(dāng)然啦, SAMBA 是否使用 private IP 還得視您的整個(gè)網(wǎng)域的 IP 網(wǎng)段的特性來規(guī)劃。 以鳥哥研究室來說,因?yàn)閷?shí)驗(yàn)室所有電腦的 IP 都是 Public IP,那麼 SAMBA 如果使用 Private IP ,當(dāng)然大家都無法連接上啊! ^_^
如果您的 SAMBA 主機(jī)使用 Public IP 時(shí),請(qǐng)?zhí)貏e留意規(guī)範(fàn)好防火牆的設(shè)定,盡量?jī)H讓 LAN 內(nèi)的電腦可以連線進(jìn)來即可,不要對(duì) Internet 開放喔!
另外,如果你的 Samba 伺服器需要掛載含有中文的 partition 時(shí),譬如說你將原本 Windows XP 的 FAT32 檔案系統(tǒng)挪到 Linux 系統(tǒng)下,此時(shí)如果用一般模式來掛載該分割槽時(shí),一些中文檔名可能會(huì)無法被順利的列印出來。 這個(gè)時(shí)候你就得需要這樣做了:
mount -t vfat -o iocharset=big5,codepage=950 /dev/hd[a-d][1-16] /mount/point
其中 iocharset 指的是本機(jī)的語系編碼方式, codepage 則與遠(yuǎn)端軟體有關(guān)。因?yàn)槲覀兪窃诒緳C(jī)進(jìn)行掛載, 所以實(shí)際上使用 iocharset 這個(gè)參數(shù)即可啦!更多說明則請(qǐng)看下節(jié)的用戶端設(shè)定部分囉!
Samba 用戶端軟體功能
現(xiàn)在你已經(jīng)架設(shè)好了 Samba 伺服器啦!有伺服器當(dāng)然要有用戶端來使用才是好的伺服器嘛!不然要這個(gè)伺服器幹嘛? 而我們假設(shè)區(qū)域網(wǎng)路內(nèi)有 Windows/Linux 系統(tǒng),這兩種系統(tǒng)都是透過 NetBIOS over TCP/IP 來連上 Samba 主機(jī)的, 在設(shè)定之前你必須要知道的有幾件事:
在區(qū)網(wǎng)內(nèi)的主機(jī)最好具有相同的工作群組,且具有不同的主機(jī)名稱;
Windows XP pro. 最多僅能允許十個(gè)用戶同時(shí)連接到網(wǎng)芳;
你可以在網(wǎng)芳當(dāng)中看到的通常是相同群組的主機(jī);
可以使用『搜尋』-->『電腦』-->『輸入 IP』來查到 Samba 主機(jī);
Windows 的網(wǎng)芳預(yù)設(shè)僅有同一網(wǎng)域的主機(jī)才能登入!
接下來咱們就分別依照 Windows XP 及 Linux 系統(tǒng)來做說明吧!
Windows 系統(tǒng)的使用
在 Windows 上面的搜尋實(shí)在挺簡(jiǎn)單的,你有好幾種方法可以處理:
打開『檔案總管』,『網(wǎng)路上的芳鄰』、『整個(gè)網(wǎng)路』、『Microsoft Windows Network』 就能看到屬於您群組的所有電腦主機(jī)了!
『開始』、『搜尋』、『檔案或資料夾』、『電腦或人員』、『網(wǎng)路上的電腦』, 然後在出現(xiàn)的方框當(dāng)中填寫正確的 IP ,按下『搜尋』即可! 這個(gè)方法可以適用於不在同一個(gè)群組當(dāng)中的網(wǎng)路主機(jī)喔!
舉例來說,如果想要連接到我們的 Samba 主機(jī)的話,而又不知到這部 Samba 主機(jī)的 NetBIOS name , 那利用搜尋的結(jié)果會(huì)有點(diǎn)類似如下的圖示:
圖九、Windows XP 用戶端搜尋示意圖
上圖九中先在左側(cè)的地方輸入正確的 IP 後,按下搜尋,如果一切順利的話那麼右上方就會(huì)出現(xiàn)這部 Samba 主機(jī)的說明了。 雙擊一下該主機(jī)名稱,就會(huì)出現(xiàn)右下方的項(xiàng)目!瞧!那就是我們所設(shè)定的幾個(gè)基本項(xiàng)目的啦!真是好高興! 然後你就可以開始進(jìn)入相對(duì)應(yīng)的目錄進(jìn)行資料的存取了,就這麼簡(jiǎn)單。 如果是印表機(jī)的話,那麼你將滑鼠移動(dòng)到印表機(jī)的上方,按下右鍵後可以選擇『連線』的項(xiàng)目, 如下所示:
圖十、Windows XP 用戶端連線印表機(jī)示意圖
如果一切順利的話,嘿嘿!你就可以在點(diǎn)選『開始』、『設(shè)定』、『印表機(jī)和傳真』後所出現(xiàn)的視窗看到這部印表機(jī)囉! 真是好棒吶! ^_^
讓 Windows 系統(tǒng)的網(wǎng)芳支援不同網(wǎng)域的 IP 連線
由於 Windows XP sp2 這個(gè)作業(yè)系統(tǒng)版本預(yù)設(shè)的防火牆僅開放相同網(wǎng)域的 IP 來源使用本機(jī)的網(wǎng)芳資料, 所以如果是不同的網(wǎng)域想要使用時(shí),預(yù)設(shè)是無法穿透 Windows 防火牆的。此時(shí)你可以修改一下防火牆的設(shè)定啊! 請(qǐng)叫出控制臺(tái),然後點(diǎn)選『Windows 防火牆』就會(huì)出現(xiàn)如下的圖示了:
圖十一、Windows XP 伺服器防火牆示意圖
按照上圖的說明,依序點(diǎn)選『例外』、『檔案及印表機(jī)共用』、『編輯』後, 就會(huì)出現(xiàn)該防火牆?rùn)C(jī)制所管理的埠口以及可連線的網(wǎng)域,如下圖所示:
圖十二、Windows XP 伺服器防火牆示意圖
你可以將四組埠口通通改變成你所需要的 IP 來源,或者是將他設(shè)定為任何電腦都能連線。 不過,鳥哥不建議喔!可以參考底下的作法:
圖十三、Windows XP 伺服器防火牆示意圖
選擇自訂的方式來設(shè)定能夠使用你 Windows 網(wǎng)芳資料的來源 IP 或網(wǎng)段即可,然後確定之後即可處理吶! 這樣一來,及時(shí)我們的 Linux 不與 Windows 同在一個(gè)網(wǎng)域中,也能夠登入 Windows 存取網(wǎng)芳資料哩。
透過 port 445 的特殊登入方式
如果你知道 Samba 主機(jī)有分享出 port 445 ,並且他已經(jīng)分享了某個(gè)目錄時(shí),舉例來說, 我們的 192.168.1.254 有分享出 public 這個(gè)分享資源名稱時(shí),那麼這個(gè)目錄的完整寫法為:『 \\192.168.1.254\public 』,我們可以透過『開始』、『執(zhí)行』來處理這個(gè)玩意兒! 如下所示:
圖十四、Windows XP 透過 port 445 連線
如果可以登入的話就會(huì)順利登入,否則就會(huì)彈出一個(gè)要你輸入帳號(hào)密碼的視窗,輸入正確的資料即可! 呼呼!真過癮~除此之外,我們還可以登入別人 Windows 主機(jī)的 C 或 D 槽喔!寫法則變成這樣:
\\192.168.1.21\c$ 所以說,怕了吧!俺還真害怕~所以啊,Samba 沒必要時(shí),那個(gè) port 445 應(yīng)該是可以關(guān)閉的吧!
Linux 系統(tǒng)的使用
咱們的 Samba 有提供 Linux 網(wǎng)芳的用戶端功能喔!也就是說 Linux 可以掛載 Samba 主機(jī)也能掛載 Windows 提供的網(wǎng)芳啦! 主要是透過 smbclient 來觀察,再以 smbmount 或 mount 來掛載磁區(qū)哩。先來介紹一下 smbclient 這個(gè)指令吧:
1. 關(guān)於查詢的功能 [root@linux ~]# smbclient -L //[IP|hostname] [-U username] [root@linux ~]# smbclient -L //127.0.0.1 -U dmtsai Password: Domain=[VBIRDSERVER] OS=[Unix] Server=[Samba 3.0.10-1.4E.9] ....分享的資源輸出省略.... Domain=[VBIRDSERVER] OS=[Unix] Server=[Samba 3.0.10-1.4E.9] Server Comment --------- ------- Workgroup Master --------- ------- VBIRDGRP VBIRD_OP_2 VBIRDHOUSE VBIRDSERVER # 從這裡可以知道在目前網(wǎng)域當(dāng)中有多少個(gè)工作群組與主要的名稱解析主機(jī)
除了這個(gè)先前用過的查詢功能之外,我們可以這樣簡(jiǎn)易使用網(wǎng)芳的:
2. 利用類似 FTP 的方式登入遠(yuǎn)端主機(jī) [root@linux ~]# smbclient '//[IP|hostname]/資源名稱' [-U username] # 意思是使用某個(gè)帳號(hào)來直接登入某部主機(jī)的某個(gè)分享資源,舉例如下: [root@linux ~]# smbclient '//127.0.0.1/dmtsai' -U dmtsai Password: Domain=[VBIRDSERVER] OS=[Unix] Server=[Samba 3.0.10-1.4E.9] smb: \> dir # 在 smb 底下其實(shí)就是在 //127.0.0.1/dmtsai 這個(gè)目錄底下啦!所以, # 我們可以使用 dir, get, put 等常用的 ftp 指令來進(jìn)行資料傳輸了! ? :列出所有可以用的指令,常用! cd :變換到遠(yuǎn)端主機(jī)的目錄 del :殺掉某個(gè)檔案 lcd :變換本機(jī)端的目錄 ls :察看目前所在目錄的檔案 dir :與 ls 相同 get :下載單一檔案 mget:下載大量檔案 mput:上傳大量檔案 put :上傳單一檔案 rm :刪除檔案 # 其他的指令用法請(qǐng)參考 man smbclient 喔!
事實(shí)上,使用 smbclient 一點(diǎn)也不方便,因?yàn)槭褂玫氖?ftp 的功能語法,有點(diǎn)怪怪的~能不能像 Windows 那樣,可以直接連線網(wǎng)路磁碟機(jī)啊?這當(dāng)然沒有問題!不過就需要藉由 smbmount 來協(xié)助了!smbmount 可以將遠(yuǎn)端主機(jī)分享出來的目錄整個(gè)給他 mount 到本機(jī)的 mount point (某個(gè)目錄),如此一來, 遠(yuǎn)端主機(jī)的目錄就好像在我們本機(jī)的一個(gè) partition 一樣喔!可以直接執(zhí)行複製、編輯等動(dòng)作!這可就好用的多了! 底下我們來談一談怎麼用這個(gè) smbmount 吧!
[root@linux ~]# smbmount //IP/分享資源 /掛載點(diǎn) [-o options] 參數(shù): -o 後面接的參數(shù) (options) 常用的有底下這些: username=你的登入帳號(hào):例如 username=dmtsai password=你的登入密碼:需要與上面 username 相對(duì)應(yīng)??! iocharset=本機(jī)的語系編碼方式,如 big5 或 utf8 等等; codepage=遠(yuǎn)端主機(jī)的語系編碼方式,例如繁體中文為cp950 範(fàn)例一:以 dmtsai 的身份將其家目錄掛載至 /mnt/samba 中 [root@linux ~]# smbmount //127.0.0.1/dmtsai /mnt/samba > -o username=dmtsai,password=pw_test,codepage=cp950 [root@linux ~]# df //127.0.0.1/dmtsai 20161024 3088896 17072128 16% /mnt/samba
經(jīng)由 smbmount 的動(dòng)作,我們就可以輕易的將遠(yuǎn)端分享出來的咚咚給他掛載到自己 Linux 本機(jī)上面!好用的很~事實(shí)上,原本 mount 這個(gè)指令如果有支援 smbfs 的話, 那也就可以直接掛載網(wǎng)路上的芳鄰分享出來的目錄了!例如上面的例子當(dāng)中,我們也可以這樣下達(dá)指令:
mount -t smbfs //127.0.0.1/dmtsai /mnt/samba -o username=dmtsai,password=pw_test,codepage=cp950,iocharset=big5
更詳細(xì)的 mount 用法,請(qǐng) man mount 或者看考『鳥哥的 Linux 私房菜 -- 基礎(chǔ)學(xué)習(xí)篇』的內(nèi)容喔! ^_^
查詢 NetBIOS name 與 IP 及其他相關(guān)資訊:
現(xiàn)在我們可以透過一些 NetBIOS 相關(guān)的功能來取得 NetBIOS name ,不過,如果你還想要知道這個(gè) NetBIOS name 的其他資訊時(shí), 例如 IP、分享的資源等等,那可以使用 nmblookup 這個(gè)指令來搞定即可。他是這麼使用的:
[root@linux ~]# nmblookup [-S] [-U wins IP] [-A IP] name 參數(shù): -S :除了查詢 name 的 IP 之外,亦會(huì)找出該主機(jī)的分享資源與 MAC 等; -U :後面一般可接 Windows 的主要名稱管理伺服器的 IP ,可與 -R 互用; -R :與 -U 互用,以 Wins 伺服器來查詢某個(gè) Netbios name; -A :相對(duì)於其他的參數(shù), -A 後面可接 IP ,藉 IP 來找出相對(duì)的 NetBIOS 資料; 範(fàn)例一:藉由本機(jī)找出 vbirdserver 這部主機(jī)的 IP 位址 [root@linux ~]# nmblookup -U localhost vbirdserver querying vbirdserver on 127.0.0.1 192.168.1.254 vbirdserver<00> 範(fàn)例二:找出 vbirdserver 的 MAC 與 IP 等資訊: [root@linux ~]# nmblookup -S vbirdserver querying vbirdserver on 192.168.1.255 192.168.1.254 vbirdserver<00> Looking up status of 192.168.1.254 VBIRDSERVER <00> - B <ACTIVE> ..__MSBROWSE__. <01> - <GROUP> B <ACTIVE> VBIRDHOUSE <1e> - <GROUP> B <ACTIVE> MAC Address = 00-00-00-00-00-00 <==因?yàn)槭潜緳C(jī)資料,所以 MAC 會(huì)成為這樣
利用 smbstatus 觀察 SAMBA 的狀態(tài)
如果想要查閱目前 SAMBA 有多人人來連線且哪些資源分享已經(jīng)被使用的話,可以這樣看:
[root@linux ~]# smbstatus [-pS] [-u username] 參數(shù): -p :列出已經(jīng)使用 SAMBA 連線的程序 PID ; -S :列出已經(jīng)被使用的資源分享狀態(tài); -u :只列出某個(gè)使用者相關(guān)的分享資料 範(fàn)例一:列出目前主機(jī)完整的 Samba 狀態(tài) [root@linux ~]# smbstatus Samba version 3.0.10-1.4E.9 PID Username Group Machine ------------------------------------------------------------------- 4973 dmtsai dmtsai 127.0.0.1 (127.0.0.1) # 上面列出的是與 PID 有關(guān)的資訊,可用 smbstatus -p 單純列出 Service pid machine Connected at ------------------------------------------------------- dmtsai 4973 127.0.0.1 Thu Dec 28 10:58:36 2006 # 上面列出的則是分享資源,那個(gè) Service 就是分享的目錄。
你可以透過這個(gè)小程式來瞭解到目前有多少人使用你的 SAMBA 的啦!
伺服器進(jìn)階管理
除了前面提到的幾個(gè)資訊之外,在這裡我們也來談?wù)勅绾巫屇愕?Samba 作更多的事情! 包括將 Windows 使用者的家目錄放到 Samba 上頭呢!^_^
讓 Samba 管理網(wǎng)域使用者:PDC
前面介紹的內(nèi)容都是屬於 Peer/Peer 的連線狀況,也就是 Samba 伺服器與 Windows 用戶端其實(shí)是平等地位的啦! 所以 Windows 用戶端需要知道 Samba 伺服器內(nèi)的帳號(hào)密碼資料後,才能夠順利的使用 Samba 的資源。 不過,這樣的方式在較大型一些的區(qū)域網(wǎng)路環(huán)境可能就會(huì)有點(diǎn)困擾,例如學(xué)校的環(huán)境。
舉例來說,如果你有一個(gè)電腦教室裡面有 50 部 Windows XP Pro. 的個(gè)人電腦,由於電腦教室大家都會(huì)使用, 因此裡面這 50 部個(gè)人電腦有使用還原精靈,也就是每次電腦重新開機(jī)後整個(gè)作業(yè)系統(tǒng)就會(huì)還原成原本的樣子。 但我們知道使用者總是需要有個(gè)人家目錄吧?他們總不希望這次的工作在重新開機(jī)後就失去了~ 所以我們可以利用一部主機(jī)來讓他們儲(chǔ)存資料??!那就是 Primary Domain Controller (PDC) 主機(jī)囉。
其實(shí) Samba PDC 的作用很簡(jiǎn)單,就是讓 Samba PDC 成為整個(gè)區(qū)域網(wǎng)路的領(lǐng)域管理員 (domain controller), 然後讓 Windows 主機(jī)加入這個(gè)領(lǐng)域,未來使用者利用 Windows 登入時(shí),Windows 會(huì)前往 PDC 伺服器取得使用者的帳號(hào)密碼, 同時(shí) PDC 還會(huì)傳送使用者的重要資料到那部 Windows 個(gè)人電腦上,而 Windows 電腦上的使用者登出時(shí), 該使用者修改過的資料也會(huì)回傳給 PDC ,如此一來不管這個(gè)使用者在哪一部個(gè)人電腦上面登入, 他都能夠取得正確的個(gè)人資料!很棒的作用吧!
PDC 是個(gè)很複雜的環(huán)境,他可以達(dá)到的功能相當(dāng)?shù)亩?,而且密碼的驗(yàn)證也不必在同一部 PDC 主機(jī)上面, 不過這裡我們不談那麼複雜的東西,只是做一個(gè)簡(jiǎn)單的練習(xí),因此底下的這部 PDC 使用自己的密碼來進(jìn)行驗(yàn)證, 並且也管理自己所分享出去的資源囉!整個(gè)基本的設(shè)定流程應(yīng)該是這樣的:
設(shè)定好 PDC 主機(jī)的 TCP/IP 與 Windows 主機(jī)的網(wǎng)路,這個(gè)你應(yīng)該已知如何處理了;
設(shè)定 PDC 的角色定位,因?yàn)?PDC 管理自己的密碼,所以 security = user
PDC 最好擁有整個(gè)網(wǎng)域的名稱解析權(quán)力,亦即成為主要的名稱解析器;
需有 netlogon 資源分享,提供 windows 2000/XP pro. 用戶端的登入之用;
由於 Windows 需讀入個(gè)人設(shè)定檔,預(yù)設(shè)目錄為 profile,Linux 系統(tǒng)需預(yù)先設(shè)定此目錄;
增加 PDC 上的使用者帳號(hào)以及機(jī)器代碼 (machine account) 等等
在 Windows 2000/XP pro. 個(gè)人電腦上設(shè)定成為 PDC 的用戶端。
底下咱們就來依序處理處理先!
0. 設(shè)定 lmhosts 或 /etc/hosts 對(duì)應(yīng) Netbios 與 IP
由於我們的 Samba 即將成為整個(gè)網(wǎng)域的名稱解析者,因此你最好將整個(gè)網(wǎng)域的 NetBIOS name 與 IP 的對(duì)應(yīng)寫入此這個(gè)檔案當(dāng)中。當(dāng)然啦,如果你的網(wǎng)域 IP 的取得為 DHCP ,那這個(gè)檔案就不要寫了吧! 以我們這個(gè)案例為例,這個(gè)檔案的內(nèi)容應(yīng)該是:
[root@linux ~]# vi /etc/samba/lmhosts 127.0.0.1 localhost 192.168.1.254 vbirdserver 192.168.1.21 vbirdcpu2 192.168.1.11 vbirdcpu1
1. 設(shè)定 smb.conf 成為具有 PDC 的能力
假設(shè)我們要讓 PDC 用戶端登入時(shí)可以取得他自己的家目錄,那麼需要這樣處理:
[root@linux ~]# vi /etc/samba/smb.conf [global] workgroup = vbirdhouse netbios name = vbirdserver server string = This is vbird's samba server unix charset = utf8 display charset = utf8 dos charset = cp950 log file = /var/log/samba/%m.log max log size = 50 socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 dns proxy = no template shell = /bin/false winbind use default domain = no security = user encrypt passwords = yes smb passwd file = /etc/samba/smbpasswd printcap name = cups load printers = yes printing = cups # 與 PDC 有關(guān)的一些設(shè)定值: # 底下幾個(gè)設(shè)定值處理成為本區(qū)域網(wǎng)路內(nèi)的主要名稱解析器 preferred master = yes domain master = yes local master = yes wins support = yes # 作業(yè)系統(tǒng) (OS) 等級(jí)越高才能成為主網(wǎng)域的控制者,一般 NT 為 32, # Windows 2000 為 64 ,所以這裡我們?cè)O(shè)定高一點(diǎn),但不可超過 255 os level = 200 # 底下則是設(shè)定能否利用 PDC 登入,且登入需要進(jìn)行哪些動(dòng)作: domain logons = yes logon drive = K: <==登入後家目錄掛載成 Windows 哪一槽 logon script = startup.bat <==每個(gè)使用者登入後會(huì)自動(dòng)執(zhí)行的程式 time server = yes <==自動(dòng)調(diào)整 Windows 時(shí)間與 Samba 同步 admin users = root <==預(yù)設(shè)的管理員帳號(hào)!預(yù)設(shè)為 root # 因?yàn)轼B哥不喜歡在 Samba 當(dāng)中使用 root ,所以這裡你也可以指定成其他帳號(hào)。 # 這個(gè)在指定登入者能夠進(jìn)行的工作,裡面主要是具有許多執(zhí)行程式: [netlogon] <==與前面的 logon script 有關(guān),該程式放置在這裡 comment = Network Logon Service path = /home/samba/netlogon <==你要自己主動(dòng)建立此目錄 writable = no write list = root follow symlinks = yes guest ok = yes [homes] comment = Home directories browseable = no writable = yes valid users = %S create mode = 0664 directory mode = 0775 [temp] comment = Temporary file space path = /tmp read only = no public = yes [root@linux ~]# testparm [root@linux ~]# /etc/init.d/smb restart
上面的設(shè)定有幾個(gè)地方比較有趣一點(diǎn):
time server:要使 Samba 與 Windows 主機(jī)的時(shí)間同步,使用這個(gè)項(xiàng)目;
logon script:當(dāng)使用者以 Windows 用戶端登入後,Samba 可以提供一支批次檔, 讓使用者去設(shè)定好他們自己的目錄配置。整個(gè)配置的內(nèi)容記錄在 startup.bat 當(dāng)中。 你要注意的是,這個(gè) startup.bat 檔名可以隨意更改,不過他必須要放置到 [netlogon] 所指定的目錄內(nèi);
logon drive:那麼這個(gè)家目錄要掛載到那個(gè)分割槽? 在 Windows 底下大多以 C, D, E... 做為磁碟的代號(hào),你這裡可以指定一下家目錄要放置成為那個(gè)磁碟代號(hào);
admin users:指定這個(gè) Samba PDC 的管理員身份。
[netlogon]:指定利用網(wǎng)路登入時(shí)首先去查詢的目錄資源。
2. 建立所需要的目錄與檔案
先來建立 [netlogon] 內(nèi)所需要的資料好了,那就是一個(gè)目錄:
[root@linux ~]# mkdir -p /home/samba/netlogon
接下來我們還得要建立允許使用者執(zhí)行的檔案,就是那個(gè) startup.bat 才行! 注意一下,我們這裡假設(shè)使用者家目錄為 K 槽,而 Samba 額外分享的 temp 則為 L 槽, 那你可以這樣做:
[root@linux ~]# vi /home/samba/netlogon/startup.bat net time \\vbirdserver /set /yes net use K: /home net use L: \\vbirdserver\temp # 這個(gè)檔案的格式為:net use [device:] [directory] # 再將該檔案轉(zhuǎn)成 DOS 的斷行格式才行!因?yàn)槭翘峁┙o Windows 系統(tǒng)嘛! [root@linux ~]# unix2dos /home/samba/netlogon/startup.bat [root@linux ~]# cat -A /home/samba/netlogon/startup.bat net time \\vbirdserver /set /yes^M$ net use K: /home^M$ net use L: \\vbirdserver\temp^M$ # 瞧見嗎?會(huì)多出個(gè)奇怪的 ^M 符號(hào),那就是 Windows 斷行字元。
3. 建立使用者
在 Samba 裡面建立使用者就是利用 smbpasswd 這個(gè)指令而已,我們已經(jīng)建立過,所以這裡不再說明。 但是由於我們需要 root 這個(gè)帳號(hào)來管理 PDC 與 Windows 用戶端之間連線建立時(shí)所需要的權(quán)限, 所以你必須要建立起這個(gè)使用者才行。建立的方法很簡(jiǎn)單,直接這樣做吧:
[root@linux ~]# smbpasswd -a root
另外,我們都知道 Windows XP pro. 的使用者設(shè)定檔會(huì)被放置到『 C:\Documents and Settings\使用者帳號(hào) 』目錄中, 在該目錄底下會(huì)有類似桌面、我的最愛、應(yīng)用程式設(shè)定、啟動(dòng)、我的文件夾啊等等的, 這些東西會(huì)放置到 Samba PDC 的哪裡去備份啊?其實(shí)是放置到:
/home/使用者帳號(hào)/profile/ 目錄下的,該目錄預(yù)設(shè)會(huì)被主動(dòng)的建立起來,不過偶而會(huì)有一些權(quán)限錯(cuò)誤的問題~傷腦筋~ 所以你可以預(yù)先處理該目錄,以 chmod 或 chown 來改變成該使用者可以存取的權(quán)限。 另外,為了避免困擾,對(duì)於新增的使用者而言,你可以這樣做:
[root@linux ~]# mkdir /etc/skel/profile
那以後新增的使用者都有可以存放來自 Windows 的特殊設(shè)定檔目錄喔!比較好管理囉~ 當(dāng)然啦,使用 useradd 新增使用者後,記得也要使用 smbpasswd -a username 來讓該使用者可以使用 Samba 喔!
4. 建立機(jī)器碼帳號(hào)
由於 PDC 會(huì)針對(duì) Windows 用戶端的主機(jī)名稱 (NetBIOS name) 進(jìn)行主機(jī)帳號(hào)檢查, 所以我們也要為用戶端的主機(jī)名稱進(jìn)行帳號(hào)的設(shè)定。咦!啥是主機(jī)帳號(hào)? 一般使用者帳號(hào)是英文或數(shù)字,主機(jī)帳號(hào)則在該帳號(hào)最後面加上一個(gè)錢字號(hào)『$』即可! 舉例來說, vbirdcpu2 這部主機(jī)可設(shè)定的帳號(hào)名稱為 vbirdcpu2$。
而我們知道要使用 smbpasswd 增加的使用者必須要在 /etc/passwd 當(dāng)中, 因此要建立這個(gè)帳號(hào)你就得要這樣做:
[root@linux ~]# useradd -M -s /sbin/nologin -d /dev/null vbirdcpu2$ [root@linux ~]# useradd -M -s /sbin/nologin -d /dev/null vbirdcpu1$
會(huì)增加 -M -s -d 等參數(shù)的原因是因?yàn)椴幌胍屵@個(gè)帳號(hào)具有可以登入的權(quán)限, 因此將這個(gè)主機(jī)帳號(hào)設(shè)定的比較怪一點(diǎn)~ ^_^~接下來讓 Samba 知道這個(gè)帳號(hào)是主機(jī)帳號(hào), 所以你應(yīng)該要這樣做:
[root@linux ~]# smbpasswd -a -m vbirdcpu1$ [root@linux ~]# smbpasswd -a -m vbirdcpu2$
這樣便加入主機(jī)帳號(hào)囉!而我們的 Samba PDC 也就可以透過『主機(jī)帳號(hào)』來判斷 Windows 用戶端能否連上來, 若連接上 PDC 與 Windows 用戶端後,接下來一般使用者帳號(hào)就可以在 windows 用戶端登入了!
5. Windows XP Pro. 用戶端的連線與登入
請(qǐng)注意,底下的方法僅是用於 Windows 2000, Windows XP 專業(yè)版 (Pro.),一般的 Windows XP home 版本是不支援的! 如果你用戶端的主機(jī)是隨機(jī)版的 Windows XP ,通常是 Windows XP home ,那底下的方法可能就無法適用囉! 要連接上 Samba PDC 的過程也是挺簡(jiǎn)單的,你可以這樣做:
確認(rèn) windows 用戶端的網(wǎng)域與主機(jī)名稱
首先我們必須要確認(rèn) Windows 用戶端的工作群組與主機(jī)名稱跟咱們的 Samba PDC 相同, 確認(rèn)的方式在區(qū)域網(wǎng)路裡面已經(jīng)提過了,這裡在強(qiáng)調(diào)一次。將滑鼠移動(dòng)到『我的電腦』上面,按下右鍵, 選擇『內(nèi)容』,然後點(diǎn)選『電腦名稱』,會(huì)出現(xiàn)如下圖示:
圖十五、Windows 用戶端連上 PDC 的方式
如上圖所示,你要先確認(rèn)箭頭 1 處指的主機(jī)名稱與工作群組,在我們這個(gè)案例當(dāng)中的工作群組為 vbirdhouse, 這部 Windows 主機(jī)的 NetBIOS 名稱則為 vbirdcpu2 喔!如果不對(duì)的話,請(qǐng)按下『變更』來設(shè)定, 並且重新開機(jī)。重新開機(jī)完畢後再到圖十五的畫面當(dāng)中,按下箭頭 2 所指的網(wǎng)路識(shí)別處。
設(shè)定主機(jī)名稱與網(wǎng)域名稱
接下來我們要設(shè)定這部 Windows XP pro. 要連結(jié)到區(qū)域網(wǎng)路上的哪部 PDC 上面, 亦即是處理主機(jī)帳號(hào)以及 Samba PDC 負(fù)責(zé)的網(wǎng)域 (domain) 啦! 在圖十五按下『網(wǎng)路識(shí)別』後,分別在出現(xiàn)的視窗當(dāng)中選擇:
1. 下一步;
2. 這臺(tái)電腦是公司網(wǎng)路的一部份,而且我在工作時(shí)用來連線到其他電腦(T)
3. 我的公司使用一或多個(gè)網(wǎng)域的網(wǎng)路(C)
4. 下一步
然後就會(huì)出現(xiàn)如下的視窗:
圖十六、Windows 用戶端連上 PDC 的方式
請(qǐng)依序填寫 Samba 主機(jī)上面的管理員帳號(hào)與密碼,要注意這個(gè)密碼是記錄於 /etc/samba/smbpasswd 中的那個(gè),可不是 /etc/shadow 喔!別搞混了~這是 Samba 主機(jī)的設(shè)定呢。 輸入之後按下一步吧,通常都會(huì)出現(xiàn)找不到正確主機(jī)的畫面,如下所示:
圖十七、Windows 用戶端連上 PDC 的方式
鳥哥也覺得很奇怪,老是告訴我找不到!不過沒有關(guān)係,這裡我們依舊再填一次主機(jī)的 NetBIOS name 以及群組名稱, 如上圖所示,然後繼續(xù)按下一步,就會(huì)出現(xiàn)如下的畫面啦:
圖十八、Windows 用戶端連上 PDC 的方式
這次就給他輸入正確的管理員帳號(hào)與密碼,記得最後面的網(wǎng)域就是工作群組名稱,別寫錯(cuò)了。 處理完畢後給他按下確定吧!然後就會(huì)出現(xiàn)如下畫面:
圖十九、Windows 用戶端連上 PDC 的方式
恭喜您,這就表示已經(jīng)連接上 Samba PDC 囉!我們希望所有的使用者都直接由 Samba PDC 控管,所以這裡請(qǐng)?zhí)顚?『此時(shí)不新增使用者』吧!按下一步去。
如果發(fā)生錯(cuò)誤情況
如果老是發(fā)生錯(cuò)誤訊息為『使用的帳戶是電腦帳戶。請(qǐng)使用您的通用使用者帳戶或本機(jī)使用者帳戶來存取這臺(tái)伺服器』時(shí), 你可以這樣做的:
先察看一下 /var/log/samba 裡面的登錄檔資訊,尤其是 vbirdcpu2.log 關(guān)於這部主機(jī)的資訊吶;
如果還是無法解決,可以在 lmhosts 裡面增加 vbirdcpu2 的 IP 與主機(jī)名稱的對(duì)應(yīng),然後將 samba 整個(gè)關(guān)掉『/etc/init.d/smb stop』,等待一段時(shí)間讓 NetBIOS 的名稱解析時(shí)間逾時(shí),再重新啟動(dòng) samba 『/etc/init.d/smb start』,然後再重新做一次輸入 root 的密碼那個(gè)動(dòng)作
在鳥哥嘗試過的案例中,上面第二個(gè)步驟挺有效的!不過,還是得要察看 /var/log/samba 裡面的登錄資訊才行喔!
重新開機(jī)並以新的網(wǎng)域名稱登入
在圖十九之後請(qǐng)重新開機(jī),開機(jī)後整個(gè)畫面會(huì)有點(diǎn)類似這樣:
圖二十、Windows 用戶端連上 PDC 的方式
請(qǐng)輸入你在 Samba PDC 上面擁有的帳號(hào)與密碼,當(dāng)然啦,上圖中最底下的選項(xiàng)最重要! 現(xiàn)在這部 Windows 主機(jī)可以使用他自己的帳號(hào)登入,也可以透過 Samba 主機(jī)來登入喔! 粉不錯(cuò)啦! ^_^
觀察使用者的家目錄與設(shè)定檔
如果你可以順利登入的話,打開檔案總管後應(yīng)該可以看到類似下方的畫面:
圖二十一、Windows 用戶端連上 PDC 的方式
呵呵!該連上的通通連結(jié)上來囉!你也可以在自己的家目錄 (K 槽) 新增移除資料的!是否很不錯(cuò)??! ^_^! 而當(dāng)你登出之後,你在 Windows 桌面上頭所進(jìn)行的各項(xiàng)個(gè)人化設(shè)定通通會(huì)被移動(dòng)到 /home/dmtsai/profile 當(dāng)中喔! 如果不相信的話,請(qǐng)自行前往 Samba 主機(jī)上頭瞧一瞧就知道了。
一些使用上面的技巧
雖然 PDC 很好用,不過你要注意的是,每次你使用 PDC 上頭的帳號(hào)登入 Windows 用戶端主機(jī)時(shí), Windows 主機(jī)會(huì)由 /home/username/profile/ 當(dāng)中載入所需要的資料, 並暫時(shí)啟動(dòng)一個(gè)資料夾在 C:\Documents and Settings\username 當(dāng)中,如果你的家目錄下的 profile 資料太多時(shí), 光是傳輸就會(huì)花去很多時(shí)間的!
所以,你應(yīng)該將一些檔案資料放置到你的家目錄下,亦即 K 槽當(dāng)中,盡量不要使用 Windows 預(yù)設(shè)的『我的文件夾』, 因?yàn)椤何业奈募A』會(huì)將資料移動(dòng)到 /home/username/profile/My Documents 目錄下,同樣的, 儲(chǔ)存到桌面的資料會(huì)被放置到 /home/username/profile/桌面 目錄中,那樣在登入與登出時(shí)會(huì)花去很多時(shí)間喔! 這個(gè)小地方也要注意的呢! ^_^
好了,關(guān)於 SAMBA 的 PDC 作法我們就談到這裡,還有更多的資訊您可以前往這個(gè)章節(jié)最後面的參考資料所列出的網(wǎng)址去查閱, 因?yàn)檫€有很多的作法吶!事實(shí)上,鳥哥覺得在一個(gè)網(wǎng)域當(dāng)中,如果有多部的 Windows NT 主機(jī),例如 Windows 2000/XP pro. 這一類的比較穩(wěn)定的個(gè)人使用桌面版本時(shí),使用 PDC 就很有用了!因?yàn)?Windows 2000/XP pro. 也是一個(gè)多人的作業(yè)系統(tǒng),不像 Windows 98 是單人的作業(yè)系統(tǒng)。所以,當(dāng)使用 Windows 2000/XP pro. 而無法登入 PDC 時(shí),您是無法使用 Windows 2000/XP pro. 上面的任何的資訊的。 但是在 Windows 98 上面若無法正確的登入,您仍然具有該電腦的主控權(quán)喔!
另外,設(shè)定 Windows 用戶端之前,請(qǐng)先確認(rèn)你的 Windows 是什麼版本? 上述的動(dòng)作對(duì)於 Windows XP 家用版 (Home) 是沒有作用的!請(qǐng)先確認(rèn)才行喔!
問題克服
通常我們?cè)谠O(shè)定 SAMBA 的時(shí)候,如果是以 Workgroup 的方式來進(jìn)行 smb.conf 的設(shè)定時(shí),幾乎很容易就可以設(shè)定成功了!並沒有什麼很困難的步驟。不過,萬一還是無法成功的設(shè)定起來, 請(qǐng)務(wù)必察看登錄檔,也就是在 /var/log/samba 裡面的資料!在這裡面的資料當(dāng)中,您會(huì)發(fā)現(xiàn):咦! 怎麼這麼多檔案?。∫?yàn)槲覀冊(cè)?smb.conf 裡面設(shè)定了:
log file = /var/log/samba/%m.log 那個(gè) %m 是指 Client 的 NetBIOS Name 的意思,所以,當(dāng)有個(gè) vbirdcpu2 的主機(jī)來登入我們的 vbirdserver 主機(jī)時(shí),那麼登入的資訊就會(huì)被紀(jì)錄在 /var/log/samba/vbirdcpu2.log 檔案喔!而如果萬一來源 IP 並沒有 Netbios name 的時(shí)候,那麼很可能是一些錯(cuò)誤訊息,這些錯(cuò)誤訊息就會(huì)被紀(jì)錄到 log.smbd, log.nmbd 裡面去了!所以,如果您要察看某部電腦連上您的 SAMBA 主機(jī)發(fā)生了什麼問題時(shí),特別要留意這個(gè)登錄檔的形式喔!
另外,如果您的 SAMBA 明明已經(jīng)啟動(dòng)完成了,卻偏偏老是無法成功,又無法查出問題時(shí),建議先關(guān)閉 Samba 一陣子,再重新啟動(dòng):
/etc/init.d/smb stop 在我的案例當(dāng)中,確實(shí)有幾次是因?yàn)?PID 與 NetBIOS 的問題,導(dǎo)致整個(gè) SAMBA 怪怪的~所以完整的關(guān)閉之後, 經(jīng)過一陣子的短暫時(shí)間,再重新啟動(dòng),應(yīng)該就可以恢復(fù)正常了!
還有,萬一您在進(jìn)行寫入的動(dòng)作時(shí),老是發(fā)現(xiàn)『您沒有相關(guān)寫入的權(quán)限!』,不要懷疑,幾乎可以確定是 Permission 的問題,也就是 Linux 的權(quán)限與 SAMBA 開放的權(quán)限並不相符合!無論如何,您必須要瞭解能不能寫入 Linux 磁碟,看的是 PID 的權(quán)限與 Linxu 檔案系統(tǒng)是否吻合,而那個(gè) smb.conf 裡面設(shè)定的相關(guān)權(quán)限只是在 SAMBA 運(yùn)作過程當(dāng)中『預(yù)計(jì)』要給使用者的權(quán)限而已,並不能取代真正的 Linux 權(quán)限喔!所以,萬一真的發(fā)現(xiàn)該問題存在, 請(qǐng)登入 Linux 系統(tǒng),查驗(yàn)一下該對(duì)應(yīng)的目錄的 permission 吧! ^_^
使用者修改 samba 密碼
有個(gè)問題是,我們知道使用者可以透過 passwd 修改 /etc/shadow 內(nèi)的密碼,那麼使用者可否修改 samba 在 /etc/samba/smbpasswd 內(nèi)的密碼呢?可以?。≈苯虞斎?smbpasswd 就能夠修改自己的密碼了! 非常簡(jiǎn)單吧~不過,如果想要讓 /etc/shadow 與 /etc/samba/smbpasswd 同步的話, 那就得要?jiǎng)狱c(diǎn)手腳了~您可以參考底下這兩個(gè)連結(jié)來處理呢。
http://moto.debian.org.tw/viewtopic.php?t=7732&
http://de.samba.org/samba/docs/using_samba/ch09.html
利用 ACL 配合單一使用者時(shí)的控管
想像一個(gè)案例,如果你是學(xué)校的網(wǎng)管人員,有個(gè)兼任老師向您申請(qǐng)帳號(hào),主要是要在很多班級(jí)內(nèi)取得同學(xué)的專題資料。 因?yàn)樵摾蠋熓羌嫒蔚?,您或許擔(dān)心一不小心該教師就將同學(xué)的辛苦資料給銷毀,倒不是教師們故意的, 而是很多時(shí)候....不熟嘛!這個(gè)時(shí)候如果你將該老師加入同學(xué)的群組,然後偏偏同學(xué)們所在的目錄是群組可寫入的話, 那麼該教師就能夠擁有可讀寫的權(quán)限了,也就容易造成一些莫名的災(zāi)難~
那該怎麼辦?其實(shí)可以透過 ACL 來管理某個(gè)目錄的單一使用者權(quán)限啦!所以說, 權(quán)限的管理不必透過 smb.conf 的設(shè)定,只要透過 ACL 來管理就能夠達(dá)到你所需要的目的了。 關(guān)於 ACL 的說明我們?cè)谇懊娴?a target="_blank" >認(rèn)識(shí)網(wǎng)路安全當(dāng)中已經(jīng)提過了, 這裡不再囉唆,請(qǐng)自行前往查閱吶! ^_^
重點(diǎn)回顧
Samba 名稱的由來是因?yàn)樾璋瑳]有意義的 SMB server 之故;
SAMBA 可以讓 Linux 與 Windows 直接進(jìn)行檔案系統(tǒng)的使用;
SAMBA 是由 Andrew Tridgell 在 1991 年的時(shí)候利用不同平臺(tái)所發(fā)展出來的;
SAMBA 主要架構(gòu)在 NetBIOS 上發(fā)展的,且以 NetBIOS over TCP/IP 克服 NetBIOS 無法跨路由的問題;
課後練習(xí)
一般來說, SAMBA 使用的設(shè)定檔放置在哪裡?檔名為何?
使用的檔名為 smb.conf ,通常會(huì)放置在 /etc/samba/smb.conf 裡面,不過,最好可以使用 rpm -qc packagename 來查詢!
哪一個(gè)指令可以用來判斷 smb.conf 這個(gè)設(shè)定檔的正確性?
當(dāng)我們修改完 smb.conf 之後,記得要以 testparm 來進(jìn)行 samba 的確認(rèn)!
哪一個(gè)指令可以用來察看 SAMBA 主機(jī)分享出什麼目錄?
利用 smbclient 即可:『smbclient -L NetBiosName -U username 』!
smbmount 的功能為何?
在 Linux 系統(tǒng)上面,將 Windows 的網(wǎng)路上的芳鄰,或者是 Linux 的 SAMBA 所提供分享的資源掛載到自己的系統(tǒng)下!
我今天使用 smbpasswd 去新增一位使用者 badbird,讓他可以登入我的 Linux SAMBA 主機(jī),但是無論如何就是無法新增。您認(rèn)為原因可能是什麼?
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Linux與Windows溝通的橋樑--samba 專題
Samba和FTP方法的各自優(yōu)勢(shì)?
搭建Samba服務(wù)器
LINUX samba配置
Samba搭建Linux和Windows文件共享服務(wù)
細(xì)致講解Fedora Samba配置安裝
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服