1:安裝samba
sudo apt-get install samba smbfs smbclient
2:修改配置/etc/samba/smb.conf
1.全域設定部分security = user 這行設定了samba的安全等級,Samba一共可以設定四個安全登記,由底到高分別為: share 這個選項表示任何人都可以不需要輸入密碼登入。 user 這個是Samba的預設層級,要求每個使用者必須輸入密碼才能登入。 server user層級的密碼都是儲存在本機上,而server層級的密碼和使用者名稱都儲存在另一台主機上。 domain 這個層級要求網路裡必須有一台Windows的網域控制站,驗證工作由網域控制站來完成。 需要注意,只要輸入使用者名稱和密碼的層級,其使用者名稱一定首先也是Linux系統內的使用者workgroup = MSHOME 這部分是Windows主機的工作群組明,Windows主機必須在同一個工作群組中server string = %h server(Samba,Ubuntu) 這個選項是顯示在Windows上的資訊,可以自訂,其中%h為Samba設定檔中的變數,代表了主機名稱,即使用hostname命令得到的主機名稱map to guest = bad user 當 security = user 時,這個選項必須注釋掉,如:# map to guest = bad user2.共用設定部分添加一個共用資料夾設定如下[share] 共用檔案名稱,不需要與實際檔案名稱一致comment = my share directory 對這個共用分支的描述path = /home/share 系統的共用目錄,必須為絕對路徑public = yes 是否允許所有人都能夠看到此目錄,no為看不到writable = yes 是否允許使用者在此目錄下可寫,no為不可些,如果可寫,還需要目錄具有寫入權限read only = yes 設定使用者是否唯讀vaild users = username 設定只有 username 使用者有效SAMBA 使用者管理在要求輸入密碼登入時有效,在設定使用者密碼時,此使用者必須是LINUX系統的使用者,如下面的指令 user 必須先是系統的使用者sudo smbpasswd -a user接下來根據提示輸入兩次密碼即可smbpasswd 指令相關參數如下:-a 新添加一個Samba使用者。-d 禁用一個Samba使用者。-e 使禁用的Samba使用者解禁。啟動 SAMBA 服務# 停止 SAMBA 服務sudo /etc/init.d/smbd stop# 啟動 SAMBA 服務sudo /etc/init.d/smbd start# 重新啟動sudo /etc/init.d/smbd restart在 WINDOWS 下訪問共用目錄# 在資源管理員,或瀏覽器中直接輸入即可, “192.168.1.10” 為伺服器 IP\\192.168.1.10故障測試指令testparm
3:寫檔案
public void SmbTest() { try { /* DataSet ds = new DataSet(); ds.ReadXml(@"E:\Test\Test\Test\163074.xml"); ds.WriteXml(@"\\10.53.132.52\share\012\a.xml"); */ Directory.CreateDirectory(@"\\10.53.132.52\share\013"); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } }
接下來會通過FTP來實現該目標。
chkconfig smb on #設定 Samba開機自動啟動 service smb start #啟動Samba服務