目錄
- Samba服務器介紹
- Samba服務器組件
- Samba服務器相關的配置文件
- 安裝Samba
- 配置Samba
- 修改配置文件
- 添加用戶并設置密碼
- 重啟Samba服務器
- 登錄Samba
- 問題匯總及補充
- 網(wǎng)絡選擇
- 防火墻問題
- 權限問題
- 無法訪問
- 自動連接
在嵌入式系統(tǒng)開發(fā)應用平臺中,tftp、nfs和samba服務器是最常用的文件傳輸工具,tftp和nfs是在嵌入式Linux開發(fā)環(huán)境中經(jīng)常使用的傳輸工具,samba則是Linux和Windows之間的文件傳輸工具。
samba是模仿Windows網(wǎng)上鄰居的SMB的通訊協(xié)議,將Linux操作系統(tǒng)“假裝成”Windows操作系統(tǒng),通過網(wǎng)上鄰居的方式來進行文件傳輸?shù)摹?/strong>
虛擬機版本:VMware10
Linux操作系統(tǒng)版本:Red Hat Enterprise Linux 5
Samba服務器介紹
Samba是在Linux系統(tǒng)上實現(xiàn)SMB(Session MessageBlock)協(xié)議的一個免費軟件,以實現(xiàn)文件共享和打印機服務共享。
Samba服務器組件
samba有兩個主要的進程smbd和nmbd。smbd進程提供了文件和打印服務,而nmbd則提供了NetBIOS名稱服務和瀏覽支持,幫助SMB客戶定位服務器,處理所有基于UDP的協(xié)議。
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 時,你還想要加入的相關服務參數(shù)。
/etc/samba/smbusers
由于 Windows 與 Linux 在管理員與訪客的賬號名稱不一致,例如: administrator (windows) 及 root(linux), 為了對應這兩者之間的賬號關系,可使用這個檔案來設定
/var/lib/samba/private/{passdb.tdb,secrets.tdb}
管理 Samba 的用戶賬號/密碼時,會用到的數(shù)據(jù)庫檔案;
/usr/share/doc/samba-<版本>
這個目錄包含了 SAMBA 的所有相關的技術手冊喔!也就是說,當你安裝好了 SAMBA 之后,你的系統(tǒng)里面就已經(jīng)含有相當豐富而完整的 SAMBA 使用手冊了!值得高興吧! ^_^,所以,趕緊自行參考喔!
至于常用的腳本文件案方面,若分為服務器與客戶端功能,則主要有底下這幾個數(shù)據(jù):
- /usr/sbin/{smbd,nmbd}:服務器功能,就是最重要的權限管理 (smbd) 以及 NetBIOS name 查詢 (nmbd) 兩個重要的服務程序;
- /usr/bin/{tdbdump,tdbtool}:服務器功能,在 Samba 3.0 以后的版本中,用戶的賬號與密碼參數(shù)已經(jīng)轉(zhuǎn)為使用數(shù)據(jù)庫了!Samba 使用的數(shù)據(jù)庫名稱為 TDB (Trivial DataBase)。 既然是使用數(shù)據(jù)庫,當然要使用數(shù)據(jù)庫的控制指令來處理啰。tdbdump 可以察看數(shù)據(jù)庫的內(nèi)容,tdbtool 則可以進入數(shù)據(jù)庫操作接口直接手動修改帳密參數(shù)。不過,你得要安裝 tdb-tools 這個軟件才行;
- /usr/bin/smbstatus:服務器功能,可以列出目前 Samba 的聯(lián)機狀況, 包括每一條 Samba 聯(lián)機的 PID, 分享的資源,使用的用戶來源等等,讓你輕松管理 Samba 啦;
- /usr/bin/{smbpasswd,pdbedit}:服務器功能,在管理 Samba 的用戶賬號密碼時, 早期是使用 smbpasswd 這個指令,不過因為后來使用 TDB 數(shù)據(jù)庫了,因此建議使用新的 pdbedit 指令來管理用戶數(shù)據(jù);
- /usr/bin/testparm:服務器功能,這個指令主要在檢驗配置文件 smb.conf 的語法正確與否,當你編輯過 smb.conf 時,請務必使用這個指令來檢查一次,避免因為打字錯誤引起的困擾??!
- /sbin/mount.cifs:客戶端功能,在 Windows 上面我們可以設定『網(wǎng)絡驅(qū)動器機』來連接到自己的主機上面。在 Linux 上面,我們則是透過 mount (mount.cifs) 來將遠程主機分享的檔案與目錄掛載到自己的 Linux 主機上面哪!
- /usr/bin/smbclient:客戶端功能,當你的 Linux主機想要藉由『網(wǎng)絡上的芳鄰』的功能來查看別臺計算機所分享出來的目錄與裝置時,就可以使用 smbclient來查看啦!這個指令也可以使用在自己的 SAMBA 主機上面,用來查看是否設定成功哩!
- /usr/bin/nmblookup:客戶端功能,有點類似 nslookup 啦!重點在查出 NetBIOS name 就是了
- /usr/bin/smbtree:客戶端功能,這玩意就有點像 Windows 系統(tǒng)的網(wǎng)絡上的芳鄰顯示的結(jié)果,可以顯示類似『靠近我的計算機』之類的數(shù)據(jù), 能夠查到工作組與計算機名稱的樹狀目錄分布圖!
安裝Samba
首先確認一下自己的Linux是否安裝了Samba,使用命令:
[root@localhost ~]# rpm -qa | grep samba

其中:samba、samba-common、samba-client三個程序是必須的。
如果沒有安裝,有兩種方式可以安裝:
第一種方式:yum安裝
yum是一個集與查找,安裝,更新和刪除程序的Linux軟件。它運行在RPM包兼容的Linux發(fā)行版本上,如:RedHat、Fedora、SUSE、CentOS、Mandriva。
第二種方式:安裝包安裝
安裝包都在光盤里,首先需要掛載:
[root@localhost ~]# mount /dev/cdrom /mnt
這個時候,會出現(xiàn)一個問題:
mount: block device /dev/sr0 is write-protected, mounting read-only
提示信息說,虛擬機掛著光驅(qū)光驅(qū)時提示只讀。用以下命令可解決該報錯:
mount -o remount,rw /dev/cdrom /mnt
此時,我們會發(fā)現(xiàn),原本空的文件夾/mnt現(xiàn)在多了很多的文件。

在/mnt/Server文件夾中,會能找到關于Samba的安裝包:

找到安裝包之后,就是安裝Samba了(只需要安裝自己沒有的那個就行了)。使用命令:
rpm samba-3.0.25b-0.el5.4.i386.rpm
rpm samba-client-3.0.25b-0.el5.4.i386.rpm
rpm samba-commons-3.0.25b-0.el5.4.i386.rpm
安裝完之后,再使用命令驗證一下是否安裝完成:
[root@localhost ~]# rpm -qa | grep samba
配置Samba
修改配置文件
samba服務器最主要的配置文件其實只有一個,就是/etc/samba/samba.conf,這個配置文件可以分為兩個部分,一個部分是全局參數(shù),一部分是共享資源相關參數(shù)。
#1.全局部分參數(shù)設置:
[global]
#與主機名相關的設置
workgroup = zkhouse <==工作組名稱
netbios name = zkserver <==主機名稱,跟hostname不是一個概念,在同一個組中,netbios name必須唯一
serverstring = this is a test samba server <==說明性文字,內(nèi)容無關緊要
#與登錄文件有關的設置
log file = /var/log/samba/log.%m <==日志文件的存儲文件名,%m代表的是client端Internet主機名,就是hostname
max log size = 50 <==日志文件最大的大小為50Kb
#與密碼相關的設置
security = share <==表示不需要密碼,可設置的值為share、user和server
passdb backend = tdbsam
#打印機加載方式
load printer = no <==不加載打印機
-----------------------------------------------------------
#2.共享資源設置方面:將舊的注釋掉,加入新的
#先取消[homes]、[printers]的項目,添加[temp]項目如下
[temp] <==共享資源名稱
comment = Temporary file space <==簡單的解釋,內(nèi)容無關緊要
path = /tmp <==實際的共享目錄
writable = yes <==設置為可寫入
browseable = yes <==可以被所有用戶瀏覽到資源名稱,
guest ok = yes <==可以讓用戶隨意登錄
也就是說,將上面“#2共享資源設置方面”加入到配置文件的最后即可。
添加用戶并設置密碼
設置賬號用于登錄samba服務器,同時并設置密碼。具體命令:
[root@localhost ~]# useradd sambauser
[root@localhost ~]# smbpasswd -a sambauser
New SMB password:
Retype new SMB password:
重啟Samba服務器
[root@localhost ~]# /etc/init.d/smb restart
如果這段命令無法運行,就是Samba沒有正確安裝的原因。

登錄Samba
在Windows和Linux網(wǎng)絡都暢通的情況下,在Windows下登錄Samba服務器。使用命令查看Samba的IP地址:
[root@localhost ~]# ifconfig

在Windows的運行,輸入\\223.3.119.170(Samba對應的IP地址):

這個時候會彈出登錄界面,直接輸入之前設置的登錄賬號和密碼就行了。

問題匯總及補充
之前Samba的安裝和配置都是一步一步來的,沒有什么問題。但是很多情況下,就是最后在Windows的運行中,輸入了\\IP地址之后,沒有任何反應。這是最麻煩的地方,因為完全不知道是什么原因?qū)е碌?。下面提供幾個可能出問題的地方:
網(wǎng)絡選擇
在配置Samba服務器的時候,網(wǎng)絡選擇為bridge橋連接。

這是因為:要保證Linux下的IP和Windows下的IP處于同一網(wǎng)段中,并且保證相互可以ping通。
怎么驗證?
在Windows的命令行中,輸入命令ipconfig:

同時在Linux中輸入命令ifconfig(兩個命令不一樣,需要注意):

可以看到:兩個IP地址223.3.119.239和223.3.119.170之間前3個都是一樣的,只有最后一個不同,這就保證了在同一網(wǎng)段。如果前3位不同,可在Linux中使用命令:
[root@localhost ~]# ifconfig eth0 223.3.119.130
只需要保證只有最后一個不同即可。
接下來驗證Windows和Linux之間的ping通,在Windows命令行中輸入ping Linux的IP地址:

結(jié)果如果不是timeout,就代表兩者之間ping通。
防火墻問題
如果防火墻不關閉,Windows和Samba之間的連通可能會被阻擋。
Windows上關閉防火墻:控制面板->系統(tǒng)和安全->Windows防火墻->打開或關閉Windows防火墻;
Linux上關閉防火墻:
[root@localhost ~]# setenforce 0
[root@localhost ~]# service iptables stop

記得要重啟Samba服務器。
權限問題
可能會出現(xiàn)權限不夠的問題,修改你想要的那個文件的權限。
[root@localhost ~]# chmod 777 /home
無法訪問
如果用windows訪問samba,跳出以下對話框的錯誤:
無法訪問。您可能沒有權限使用網(wǎng)絡資源。請與這臺服務器的管理員聯(lián)系以查明您是否有訪問權限。
不允許一個用戶使用一個以上用戶名與一個服務器或共享資源的多重連接。中斷與此服務器或共享資源的所有連接,然后再試一次……或者直接重啟Windows。
怎么斷開連接(即退出Samba服務器)呢?
在Windows的命令行中輸入:
自動連接
使每次打開Linux自動運行smba服務器:
在終端中輸入setup->system service->找到smb,按下空格,便可選中->退出完成(注意切換用tab鍵)。
如果還有什么問題,也可以參考連接: 【Linux】samba服務器的安裝和配置,159 samba 無法訪問。您可能沒有權限使用網(wǎng)絡資源 net use命令。
到此這篇關于Linux Samba服務器超詳細安裝配置(附問題解決)的文章就介紹到這了,更多相關Linux Samba服務器安裝配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!