正如名稱一樣的迷人的一個服務,充滿了激情?;馃岬奶鞖庵懈砑右环旨聞樱菊戮蛧L試對下面火熱的samba服務是要如何破解并掌握于手心中。(本篇當中借鑒了鳥哥私房菜和linux就該這么學還有傳說中的中華小題庫,通過做題來對于samba進行初步的了解)后續還會添加一篇關于samba服務的文章,作為深度了解。
首先了解下samba的來源,聽說作者老道(Tridgwell)本來沒準備給這個服務起這個名字。估計是很喜歡熱舞便給服務起了一個充滿激情的名字“Samba(Server Messae Block )”簡稱smb,smb服務優勢就是激情,window和linux可以相互之間修改文件,嗯美滋滋,其實是他申請時候人家說他申請的名字太low了,哈哈。samba服務程序是一款smb協議并由服務端和客戶端組成的開源軟件,實現linux和windows系統之間的共享。好了具體信息請去瀏覽器搜索詳細信息,開打開打~
臨兵斗者皆陣列在前~
一般情況安裝前最好先查看你設備是否已經安裝了samba服務(不管什么服務的配置安裝前必須先確定好是否已經安裝過目標服務)
輸入rpm –qa|grep samba沒有顯示,則表示samba沒有安裝。
輸入yum install samba–3.5.10–125.el6.i686.rpm安裝samba
與samba服務器相關的配置文件有:
-
/etc/samba/smb.conf
這是samba的主要配置文件,基本上僅有這個文件,而且這個配置文件本身的說明非常詳細。主要的設置包括服務器全局設置,如工作組、NetBIOS名稱和密碼等級,以及共享目錄的相關設置,如實際目錄、共享資源名稱和權限等兩大部分。 -
/etc/samba/lmhosts
早期的 NetBIOS name 需額外設定,因此需要這個 lmhosts 的 NetBIOS name 對應的 IP 檔。 事實上它有點像是 /etc/hosts 的功能!只不過這個 lmhosts 對應的主機名是 NetBIOS name 喔!不要跟 /etc/hosts 搞混了!目前 Samba 預設會去使用你的本機名稱 (hostname) 作為你的 NetBIOS name,因此這個檔案不設定也無所謂。 -
/etc/sysconfig/samba
提供啟動 smbd, nmbd 時,你還想要加入的相關服務參數。 -
/etc/samba/smbusers
由于 Windows 與 Linux 在管理員與訪客的賬號名稱不一致,例如: administrator (windows) 及 root(linux), 為了對應這兩者之間的賬號關系,可使用這個檔案來設定 -
/var/lib/samba/private/{passdb.tdb,secrets.tdb}
管理 Samba 的用戶賬號/密碼時,會用到的數據庫檔案; -
/usr/share/doc/samba–<版本>
這個目錄包含了 SAMBA 的所有相關的技術手冊喔!也就是說,當你安裝好了 SAMBA 之后,你的系統里面就已經含有相當豐富而完整的 SAMBA 使用手冊了!值得高興吧! ^_^,所以,趕緊自行參考喔!
至于常用的腳本文件案方面,若分為服務器與客戶端功能,則主要有底下這幾個數據:
-
/usr/sbin/{smbd,nmbd}:服務器功能,就是最重要的權限管理 (smbd) 以及 NetBIOS name 查詢 (nmbd) 兩個重要的服務程序;
-
/usr/bin/{tdbdump,tdbtool}:服務器功能,在 Samba 3.0
以后的版本中,用戶的賬號與密碼參數已經轉為使用數據庫了!Samba 使用的數據庫名稱為 TDB (Trivial DataBase)。
既然是使用數據庫,當然要使用數據庫的控制指令來處理啰。tdbdump 可以察看數據庫的內容,tdbtool 則可以進入數據庫操作接口直接手動修改帳密參數。不過,你得要安裝 tdb–tools 這個軟件才行; -
/usr/bin/smbstatus:服務器功能,可以列出目前 Samba 的聯機狀況, 包括每一條 Samba 聯機的 PID, 分享的資源,使用的用戶來源等等,讓你輕松管理 Samba 啦;
-
/usr/bin/{smbpasswd,pdbedit}:服務器功能,在管理 Samba 的用戶賬號密碼時, 早期是使用 smbpasswd 這個指令,不過因為后來使用 TDB 數據庫了,因此建議使用新的 pdbedit 指令來管理用戶數據;
-
/usr/bin/testparm:服務器功能,這個指令主要在檢驗配置文件 smb.conf 的語法正確與否,當你編輯過 smb.conf
時,請務必使用這個指令來檢查一次,避免因為打字錯誤引起的困擾??! -
/sbin/mount.cifs:客戶端功能,在 Windows 上面我們可以設定『網絡驅動器機』來連接到自己的主機上面。在linux上面,我們則是透過 mount (mount.cifs) 來將遠程主機分享的檔案與目錄掛載到自己的linux主機上面哪!
-
/usr/bin/smbclient:客戶端功能,當你的 Linux主機想要藉由『網絡上的芳鄰』的功能來查看別臺計算機所分享出來的目錄與裝置時,就可以使用 smbclient來查看啦!這個指令也可以使用在自己的 SAMBA 主機上面,用來查看是否設定成功哩!
-
/usr/bin/nmblookup:客戶端功能,有點類似 nslookup 啦!重點在查出 NetBIOS name 就是了
-
/usr/bin/smbtree:客戶端功能,這玩意就有點像 Windows
既然提到中華小題庫中關于samba的練習那么還是以此為中心進行學習了解,那么問題來了!
在你的服務端上配置SMB服務
您的SMB服務器必須是STAFF工作組的一個成員
共享/common目錄共享名必須為common
只有domain1.example.com域內的客戶端可以訪問common共享
common必須是可以瀏覽的
用戶andy必須能夠讀取共享中的內容,如果需要的話,驗證的密碼是flectrag
分析:這個其實算是一個完整samba配置的題目,能夠搞定的話samba服務基本也算是可以大概了解了。本著學習為主,有可能還會再開一篇,嗯嗯,也許可能會,然而未必不見得。
好了,準備2臺設備或者3個,我用的是7版本的red hat,服務端沒什么要求(linux主機一個,window或者linux再來個作為客戶端)
步驟如下:
(客戶端system1)
[root@system1 ~]# yum install samba samba–client
[root@system1 ~]# mkdir /common
[root@system1 ~]# vim /etc/samba/smb.conf
workgroup = STAFF
[common]
path = /common
hosts allow = 172.24.1.
browseable = yes
[root@system1 ~]# firewall-cmd –permanent –add-service=samba
[root@system1 ~]# firewall-cmd –permanent –add-service=mountd
[root@system1 ~]# firewall-cmd –reload
[root@system1 ~]# chcon –R –t samba_share_t /common(關鍵)
[root@system1 ~]# smbpasswd –a andy
[root@system1 ~]# systemctl restart smb nmb
[root@system1 ~]# systemctl enable smb nmb
(服務端測試system2)
[root@system2 ~]# yum install samba–client cifs-utils
[root@system2 ~]# smbclient -L //172.24.1.5 -U andy
如果出現無法訪問的時候,基本就是防火墻或者selinux的問題,有人會問/etc/samba/smb.conf配置文件怎么不一樣,其實就是因為我把很多注釋的文件都給過濾了。如果感覺不喜歡的話,可以逐字的添加。
好了,以上就是samba的基本中的基本的知識。目的不是為了能怎樣怎樣,僅僅為了學習。
原創文章,作者:眼一睜,如若轉載,請注明出處:http://www.www58058.com/84896