您好,登錄后才能下訂單哦!
這篇文章主要講解了“Linux Samba服務器的詳細安裝配置”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Linux Samba服務器的詳細安裝配置”吧!
Samba服務器介紹
Samba服務器組件
Samba服務器相關的配置文件
安裝Samba
第一種方式:yum安裝
第二種方式:安裝包安裝
配置Samba
修改配置文件
添加用戶并設置密碼
重啟Samba服務器
登錄Samba
問題匯總及補充
網絡選擇
防火墻問題
權限問題
無法訪問
自動連接
在嵌入式系統開發應用平臺中,tftp、nfs和samba服務器是最常用的文件傳輸工具,tftp和nfs是在嵌入式Linux開發環境中經常使用的傳輸工具,samba則是Linux和Windows之間的文件傳輸工具。
samba是模仿Windows網上鄰居的SMB的通訊協議,將Linux操作系統“假裝成”Windows操作系統,通過網上鄰居的方式來進行文件傳輸的。
虛擬機版本:VMware10
Linux操作系統版本:Red Hat Enterprise Linux 5
Samba是在Linux系統上實現SMB(Session MessageBlock)協議的一個免費軟件,以實現文件共享和打印機服務共享。
samba有兩個主要的進程smbd和nmbd。smbd進程提供了文件和打印服務,而nmbd則提供了NetBIOS名稱服務和瀏覽支持,幫助SMB客戶定位服務器,處理所有基于UDP的協議。
/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 系統的網絡上的芳鄰顯示的結果,可以顯示類似『靠近我的計算機』之類的數據, 能夠查到工作組與計算機名稱的樹狀目錄分布圖!
首先確認一下自己的Linux是否安裝了Samba,使用命令:
[root@localhost ~]# rpm -qa | grep samba
其中:samba、samba-common、samba-client三個程序是必須的。
如果沒有安裝,有兩種方式可以安裝:
yum是一個集與查找,安裝,更新和刪除程序的Linux軟件。它運行在RPM包兼容的Linux發行版本上,如:RedHat、Fedora、SUSE、CentOS、Mandriva。
yum install -y samba
安裝包都在光盤里,首先需要掛載:
[root@localhost ~]# mount /dev/cdrom /mnt
這個時候,會出現一個問題:
mount: block device /dev/sr0 is write-protected, mounting read-only
提示信息說,虛擬機掛著光驅光驅時提示只讀。用以下命令可解決該報錯:
mount -o remount,rw /dev/cdrom /mnt
此時,我們會發現,原本空的文件夾/mnt現在多了很多的文件。
在/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服務器最主要的配置文件其實只有一個,就是/etc/samba/samba.conf,這個配置文件可以分為兩個部分,一個部分是全局參數,一部分是共享資源相關參數。
#1.全局部分參數設置: [global] #與主機名相關的設置 workgroup = zkhouse <==工作組名稱 netbios name = zkserver <==主機名稱,跟hostname不是一個概念,在同一個組中,netbios name必須唯一 serverstring = this is a test samba server <==說明性文字,內容無關緊要 #與登錄文件有關的設置 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 <==簡單的解釋,內容無關緊要 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:
[root@localhost ~]# /etc/init.d/smb restart
如果這段命令無法運行,就是Samba沒有正確安裝的原因。
在Windows和Linux網絡都暢通的情況下,在Windows下登錄Samba服務器。使用命令查看Samba的IP地址:
[root@localhost ~]# ifconfig
在Windows的運行,輸入\\223.3.119.170(Samba對應的IP地址):
這個時候會彈出登錄界面,直接輸入之前設置的登錄賬號和密碼就行了。
之前Samba的安裝和配置都是一步一步來的,沒有什么問題。但是很多情況下,就是最后在Windows的運行中,輸入了\\IP地址之后,沒有任何反應。這是最麻煩的地方,因為完全不知道是什么原因導致的。下面提供幾個可能出問題的地方:
在配置Samba服務器的時候,網絡選擇為bridge橋連接。
這是因為:要保證Linux下的IP和Windows下的IP處于同一網段中,并且保證相互可以ping通。
怎么驗證?
在Windows的命令行中,輸入命令ipconfig:
同時在Linux中輸入命令ifconfig(兩個命令不一樣,需要注意):
可以看到:兩個IP地址223.3.119.239和223.3.119.170之間前3個都是一樣的,只有最后一個不同,這就保證了在同一網段。如果前3位不同,可在Linux中使用命令:
[root@localhost ~]# ifconfig eth0 223.3.119.130
只需要保證只有最后一個不同即可。
接下來驗證Windows和Linux之間的ping通,在Windows命令行中輸入ping Linux的IP地址:
結果如果不是timeout,就代表兩者之間ping通。
如果防火墻不關閉,Windows和Samba之間的連通可能會被阻擋。
Windows上關閉防火墻:控制面板->系統和安全->Windows防火墻->打開或關閉Windows防火墻;
Linux上關閉防火墻:
[root@localhost ~]# setenforce 0 [root@localhost ~]# service iptables stop
記得要重啟Samba服務器。
可能會出現權限不夠的問題,修改你想要的那個文件的權限。
[root@localhost ~]# chmod 777 /home
如果用windows訪問samba,跳出以下對話框的錯誤:
無法訪問。您可能沒有權限使用網絡資源。請與這臺服務器的管理員聯系以查明您是否有訪問權限。
不允許一個用戶使用一個以上用戶名與一個服務器或共享資源的多重連接。中斷與此服務器或共享資源的所有連接,然后再試一次……或者直接重啟Windows。
怎么斷開連接(即退出Samba服務器)呢?
在Windows的命令行中輸入:
net use * /delete /y
使每次打開Linux自動運行smba服務器:
在終端中輸入setup->system service->找到smb,按下空格,便可選中->退出完成(注意切換用tab鍵)。
感謝各位的閱讀,以上就是“Linux Samba服務器的詳細安裝配置”的內容了,經過本文的學習后,相信大家對Linux Samba服務器的詳細安裝配置這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。