為了實現windows主機與linux伺服器之間的資源共享,linux作業系統提供了samba服務,samba服務為兩種不同的作業系統架起了一座橋梁,使linux系統和windows系統之間能夠實現互相通訊,為廣泛的linux愛好者提供了極大方便。
1、服務查詢
預設情況下,linux系統在預設安裝中已經安裝了samba服務包的一部分 ,為了對整個過程有乙個完整的了解,在此先將這部分解除安裝掉。使用命令
rpm -qa | grep samba
rpm命令是rpm軟體包的管理工具。rpm原本是red hat linux發行版專門用來管理linux各項套件的程式,由於它遵循gpl規則且功能強大方便,因而廣受歡迎。逐漸受到其他發行版的採用。rpm套件管理方式的出現,讓linux易於安裝,公升級,間接提公升了linux的適用度。
如果沒有請先安裝rpm命令
sudo apt-get install rpm
2、解除安裝samba
用rpm -e 將兩個包解除安裝掉。對於samba-common-3.0.33-3.7.el5,因為與其它rpm包之間存在依賴關係,所以必須加引數-f和–nodeps,-f是指強制,–nodeps是指不檢查依賴關係,具體完整命令為:
rpm -e samba-common-3.0.33-3.7.el5 -f –nodeps
3、安裝samba
用以下命令安裝:
rpm -ivh samba-3.0
.33-3.29
.el5_6.2
.i386.rpm -f --nodeps
rpm -ivh samba-client-3.0
.33-3.29
.el5_6.2
.i386.rpm -f --nodeps
rpm -ivh samba-common-3.0
.33-3.29
.el5_6.2
.i386.rpm -f --nodeps
安裝完成後,使用命令rpm -qa | grep samba進行查詢,發現搭建samba伺服器所依賴的所有伺服器都已經安裝好了即可。
ubuntu 安裝samba(簡化)
sudo apt-get install samba
sudo apt-get install smbclient
啟動samba伺服器只需執行如下命令:
#sudo /etc/init.d/samba start
sudo service samba start
關閉samba伺服器:
#sudo /etc/init.d/samba stop
sudo service samba stop
重新啟動samba伺服器:
#sudo /etc/init.d/samba restart
sudo service samba restart
檢視狀態
#sudo /etc/init.d/samba status
sudo service samba status
啟動samba伺服器後,可以使用ps命令檢視程序:
#ps -aux
可以看到samba服務會同時啟動兩個服務,其中smbd主要用來管理共享出來的目錄,nmbd主要用來解析netbios名。在windows系統中,主機可以被加入乙個組中,這樣每個主機都必須有乙個名字,這個名字是用於在網上被標誌的名,並非機器的主機名,將其稱為netbios名。其中nmbd程序是隨著smbd程序啟動而啟動。
4、配置smb.conf檔案
samba的配置檔案一般就放在/etc/samba目錄中,主配置檔案名為smb.conf,檔案中記錄著大量的規則和共享資訊,所以是samba服務非常重要的核心配置檔案,完成samba伺服器搭建的大部分主要配置都在該檔案中進行。
samba伺服器的工作原理是:客戶端向samba伺服器發起請求,請求訪問共享目錄,samba伺服器接收請求,查詢smb.conf檔案,檢視共享目錄是否存在,以及來訪者的訪問許可權,如果來訪者具有相應的許可權,則允許客戶端訪問,最後將訪問過程中系統的資訊以及採集的使用者訪問行為資訊存放在日誌檔案中。
首先備份一下samba的配置檔案
sudo cd /etc/samba
sudo mv smb.conf smb.confbackup
然後重新建立乙個smb.conf檔案
sudo vim smb.conf
然後我們把這段寫入smb.conf中
[global]
workgroup = workgroup
netbios name = linuxshare
server string = project
security = share
[project]
path = /opt/project
writeable = yes
browseable = yes
#guest ok = yes
valid users=root
其中:[global]這段是全域性配置,是必段寫的。其中有如下的幾行;
workgroup 就是windows中顯示的工作組;在這裡我設定的是workgroup(用大寫);
netbios name 就是在windows中顯示出來的計算機名;
server string 就是samba伺服器說明,可以自己來定義;這個不是什麼重要的;
security 這是驗證和登入方式,這裡我們用了share ;驗證方式有好多種,這是其中一種;另外一種常用的是user的驗證方式;如果用share呢,就是不用設定使用者和密碼了;
[project] 這個在windows中顯示出來是共享的目錄;
path = 可以設定要共享的目錄放在**;
writeable 是否可寫,這裡我設定為可寫;
browseable 是否可以瀏覽,可以;可以瀏覽意味著,我們在工作組下能看到共享資料夾。如果您不想顯示出來,那就設定為 browseable=no
guest ok 匿名使用者以guest身份是登入;
valid users=root 指定root使用者可以訪問,在第三步中有配置。
id nobody uid=99(nobody) gid=99(nobody) groups=99(nobody)
參考備註:
Linux與Windows串列埠通訊
串列埠是常用的計算機與外部序列裝置之間的資料傳輸通道,由於序列通訊方便易行,所以應用廣泛。現在國際上不斷有串列埠新技術及新規格推出,結合社會各方面需要,串列埠通訊發展的空間龐大。串列埠通訊技術因其自身的優勢和特性,及計算機技術的廣泛應用深入到生活和生產的各個領域,世界上數以億計的通訊裝置都以串列埠通...
Linux與Windows串列埠通訊
串列埠是常用的計算機與外部序列裝置之間的資料傳輸通道,由於序列通訊方便易行,所以應用廣泛。現在國際上不斷有串列埠新技術及新規格推出,結合社會各方面需要,串列埠通訊發展的空間龐大。串列埠通訊技術因其自身的優勢和特性,及計算機技術的廣泛應用深入到生活和生產的各個領域,世界上數以億計的通訊裝置都以串列埠通...
Windows執行緒通訊與訊息對映
在標頭檔案中加入乙個定義使用者訊息的語句 const wm threadended wm user 100 自定義執行緒訊息再在標頭檔案中加入訊息處理函式的宣告 afx msg afx msg long onthreadended wparam wparam,lparam lparam 宣告訊息處理...