Linux Samba服務(wù)器超詳細安裝配置(附問題解決)
在嵌入式系統(tǒng)開發(fā)應(yīng)用平臺中,tftp、nfs和samba服務(wù)器是最常用的文件傳輸工具,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服務(wù)器介紹
Samba是在Linux系統(tǒng)上實現(xiàn)SMB(Session MessageBlock)協(xié)議的一個免費軟件,以實現(xiàn)文件共享和打印機服務(wù)共享。
Samba服務(wù)器組件
samba有兩個主要的進程smbd和nmbd。smbd進程提供了文件和打印服務(wù),而nmbd則提供了NetBIOS名稱服務(wù)和瀏覽支持,幫助SMB客戶定位服務(wù)器,處理所有基于UDP的協(xié)議。
Samba服務(wù)器相關(guān)的配置文件
/etc/samba/smb.conf
這是samba的主要配置文件,基本上僅有這個文件,而且這個配置文件本身的說明非常詳細。主要的設(shè)置包括服務(wù)器全局設(shè)置,如工作組、NetBIOS名稱和密碼等級,以及共享目錄的相關(guān)設(shè)置,如實際目錄、共享資源名稱和權(quán)限等兩大部分。
/etc/samba/lmhosts
早期的 NetBIOS name 需額外設(shè)定,因此需要這個 lmhosts 的 NetBIOS name 對應(yīng)的 IP 檔。 事實上它有點像是 /etc/hosts 的功能!只不過這個 lmhosts 對應(yīng)的主機名是 NetBIOS name 喔!不要跟 /etc/hosts 搞混了!目前 Samba 預(yù)設(shè)會去使用你的本機名稱 (hostname) 作為你的 NetBIOS name,因此這個檔案不設(shè)定也無所謂。
/etc/sysconfig/samba
提供啟動 smbd, nmbd 時,你還想要加入的相關(guān)服務(wù)參數(shù)。
/etc/samba/smbusers
由于 Windows 與 Linux 在管理員與訪客的賬號名稱不一致,例如: administrator (windows) 及 root(linux), 為了對應(yīng)這兩者之間的賬號關(guān)系,可使用這個檔案來設(shè)定
/var/lib/samba/private/{passdb.tdb,secrets.tdb}
管理 Samba 的用戶賬號/密碼時,會用到的數(shù)據(jù)庫檔案;
/usr/share/doc/samba-<版本>
這個目錄包含了 SAMBA 的所有相關(guān)的技術(shù)手冊喔!也就是說,當(dāng)你安裝好了 SAMBA 之后,你的系統(tǒng)里面就已經(jīng)含有相當(dāng)豐富而完整的 SAMBA 使用手冊了!值得高興吧! ^_^,所以,趕緊自行參考喔!
至于常用的腳本文件案方面,若分為服務(wù)器與客戶端功能,則主要有底下這幾個數(shù)據(jù):
- /usr/sbin/{smbd,nmbd}:服務(wù)器功能,就是最重要的權(quán)限管理 (smbd) 以及 NetBIOS name 查詢 (nmbd) 兩個重要的服務(wù)程序;
- /usr/bin/{tdbdump,tdbtool}:服務(wù)器功能,在 Samba 3.0以后的版本中,用戶的賬號與密碼參數(shù)已經(jīng)轉(zhuǎn)為使用數(shù)據(jù)庫了!Samba 使用的數(shù)據(jù)庫名稱為 TDB (Trivial DataBase)。既然是使用數(shù)據(jù)庫,當(dāng)然要使用數(shù)據(jù)庫的控制指令來處理啰。tdbdump 可以察看數(shù)據(jù)庫的內(nèi)容,tdbtool 則可以進入數(shù)據(jù)庫操作接口直接手動修改帳密參數(shù)。不過,你得要安裝 tdb-tools 這個軟件才行;
- /usr/bin/smbstatus:服務(wù)器功能,可以列出目前 Samba 的聯(lián)機狀況, 包括每一條 Samba 聯(lián)機的 PID, 分享的資源,使用的用戶來源等等,讓你輕松管理 Samba 啦;
- /usr/bin/{smbpasswd,pdbedit}:服務(wù)器功能,在管理 Samba 的用戶賬號密碼時, 早期是使用 smbpasswd 這個指令,不過因為后來使用 TDB 數(shù)據(jù)庫了,因此建議使用新的 pdbedit 指令來管理用戶數(shù)據(jù);
- /usr/bin/testparm:服務(wù)器功能,這個指令主要在檢驗配置文件 smb.conf 的語法正確與否,當(dāng)你編輯過 smb.conf時,請務(wù)必使用這個指令來檢查一次,避免因為打字錯誤引起的困擾?。?/li>
- /sbin/mount.cifs:客戶端功能,在 Windows 上面我們可以設(shè)定『網(wǎng)絡(luò)驅(qū)動器機』來連接到自己的主機上面。在 Linux 上面,我們則是透過 mount (mount.cifs) 來將遠程主機分享的檔案與目錄掛載到自己的 Linux 主機上面哪!
- /usr/bin/smbclient:客戶端功能,當(dāng)你的 Linux主機想要藉由『網(wǎng)絡(luò)上的芳鄰』的功能來查看別臺計算機所分享出來的目錄與裝置時,就可以使用 smbclient來查看啦!這個指令也可以使用在自己的 SAMBA 主機上面,用來查看是否設(shè)定成功哩!
- /usr/bin/nmblookup:客戶端功能,有點類似 nslookup 啦!重點在查出 NetBIOS name 就是了
- /usr/bin/smbtree:客戶端功能,這玩意就有點像 Windows系統(tǒng)的網(wǎng)絡(luò)上的芳鄰顯示的結(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。
yum install -y samba
第二種方式:安裝包安裝
安裝包都在光盤里,首先需要掛載:
[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文件夾中,會能找到關(guān)于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服務(wù)器最主要的配置文件其實只有一個,就是/etc/samba/samba.conf,這個配置文件可以分為兩個部分,一個部分是全局參數(shù),一部分是共享資源相關(guān)參數(shù)。
#1.全局部分參數(shù)設(shè)置: [global] #與主機名相關(guān)的設(shè)置 workgroup = zkhouse <==工作組名稱 netbios name = zkserver <==主機名稱,跟hostname不是一個概念,在同一個組中,netbios name必須唯一 serverstring = this is a test samba server <==說明性文字,內(nèi)容無關(guān)緊要 #與登錄文件有關(guān)的設(shè)置 log file = /var/log/samba/log.%m <==日志文件的存儲文件名,%m代表的是client端Internet主機名,就是hostname max log size = 50 <==日志文件最大的大小為50Kb #與密碼相關(guān)的設(shè)置 security = share <==表示不需要密碼,可設(shè)置的值為share、user和server passdb backend = tdbsam #打印機加載方式 load printer = no <==不加載打印機 ----------------------------------------------------------- #2.共享資源設(shè)置方面:將舊的注釋掉,加入新的 #先取消[homes]、[printers]的項目,添加[temp]項目如下 [temp] <==共享資源名稱 comment = Temporary file space <==簡單的解釋,內(nèi)容無關(guān)緊要 path = /tmp <==實際的共享目錄 writable = yes <==設(shè)置為可寫入 browseable = yes <==可以被所有用戶瀏覽到資源名稱, guest ok = yes <==可以讓用戶隨意登錄
也就是說,將上面“#2共享資源設(shè)置方面”加入到配置文件的最后即可。
添加用戶并設(shè)置密碼
設(shè)置賬號用于登錄samba服務(wù)器,同時并設(shè)置密碼。具體命令:
[root@localhost ~]# useradd sambauser [root@localhost ~]# smbpasswd -a sambauser New SMB password: Retype new SMB password:
重啟Samba服務(wù)器
[root@localhost ~]# /etc/init.d/smb restart
如果這段命令無法運行,就是Samba沒有正確安裝的原因。
登錄Samba
在Windows和Linux網(wǎng)絡(luò)都暢通的情況下,在Windows下登錄Samba服務(wù)器。使用命令查看Samba的IP地址:
[root@localhost ~]# ifconfig
在Windows的運行,輸入\\223.3.119.170(Samba對應(yīng)的IP地址):
這個時候會彈出登錄界面,直接輸入之前設(shè)置的登錄賬號和密碼就行了。
問題匯總及補充
之前Samba的安裝和配置都是一步一步來的,沒有什么問題。但是很多情況下,就是最后在Windows的運行中,輸入了\\IP地址之后,沒有任何反應(yīng)。這是最麻煩的地方,因為完全不知道是什么原因?qū)е碌?。下面提供幾個可能出問題的地方:
網(wǎng)絡(luò)選擇
在配置Samba服務(wù)器的時候,網(wǎng)絡(luò)選擇為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通。
防火墻問題
如果防火墻不關(guān)閉,Windows和Samba之間的連通可能會被阻擋。
Windows上關(guān)閉防火墻:控制面板->系統(tǒng)和安全->Windows防火墻->打開或關(guān)閉Windows防火墻;
Linux上關(guān)閉防火墻:
[root@localhost ~]# setenforce 0 [root@localhost ~]# service iptables stop
記得要重啟Samba服務(wù)器。
權(quán)限問題
可能會出現(xiàn)權(quán)限不夠的問題,修改你想要的那個文件的權(quán)限。
[root@localhost ~]# chmod 777 /home
無法訪問
如果用windows訪問samba,跳出以下對話框的錯誤:
無法訪問。您可能沒有權(quán)限使用網(wǎng)絡(luò)資源。請與這臺服務(wù)器的管理員聯(lián)系以查明您是否有訪問權(quán)限。
不允許一個用戶使用一個以上用戶名與一個服務(wù)器或共享資源的多重連接。中斷與此服務(wù)器或共享資源的所有連接,然后再試一次……或者直接重啟Windows。
怎么斷開連接(即退出Samba服務(wù)器)呢?
在Windows的命令行中輸入:
net use * /delete /y
自動連接
使每次打開Linux自動運行smba服務(wù)器:
在終端中輸入setup->system service->找到smb,按下空格,便可選中->退出完成(注意切換用tab鍵)。
如果還有什么問題,也可以參考連接: 【Linux】samba服務(wù)器的安裝和配置,159 samba 無法訪問。您可能沒有權(quán)限使用網(wǎng)絡(luò)資源 net use命令。
到此這篇關(guān)于Linux Samba服務(wù)器超詳細安裝配置(附問題解決)的文章就介紹到這了,更多相關(guān)Linux Samba服務(wù)器安裝配置內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。