Linux 和 Windows 之間共享文件之 samba
導語
如果對windows有過實際操作技巧的人都會明白,在windows下的文件共享加上網絡驅動器映射是多麽方便的體驗,甚至比ftp更加的簡單,就像本地多了一塊可與他人交流的硬盤一樣。
問題
由於性能和生態的原因,大多數人都選擇的是linux 操作系統,而linux系統的環境與windows大不相同,windows的共享大量依賴與自己的用戶模型系統。 如果想要在linux上與windows實現相互共享,很明顯需要第三方的軟件來模擬和轉換。
方案
這麽剛性的需求,肯定有大量的人早已實現了這樣的需求,我們一番探究,選取一個最簡單的方案–samba。
實施
1.安裝
安裝這個東西非常簡單
yum installsamba
2.配置
配置是比較復雜的,對於samba來說。 倒不是說他的選項繁多,而是他的邏輯比較反人類,而且配置說明和實際操作嚴重不符。
vi /etc/samba/smb.conf
這個地方我們進去編輯,會發現密密麻麻的一大片,大部分是註釋,用來教你怎麽配置。 然後其語言幾度不精煉,而且寫的竟然有問題。 其實這個東西的配置本身十分的簡單,只需要配置好兩個節點。
[global] workgroup = mygroup #工作組 server string = Samba Server Version %v #服務器文本 netbios name = HOME-WS #主機名 logfile = /var/log/samba/log.%m #日誌名稱 max log size = 50 #最大日誌大小 guest ok = yes #是否允許guest 賬戶 security = user #安全模式
這段是全局配置,其中其中最大的坑在於
security = user
這一句文檔中解釋說
security = the mode Samba runs in. This can be set to user, share # (deprecated), or server (deprecated).
意思就是可取值為user、share、server。 取這三個值分別對應用戶模式、共享模式、域模式。 其中取值share的時候用戶不需要輸入密碼直接就可以訪問,share的時候由域服務器驗證。這裏我們簡單點的需求就是直接取值share。 然而。。。。報錯了。
WARNING: Ignoring invalid value ‘share‘ for parameter ‘security‘
值無效! ! 老子是按照你的說法這樣弄的啊!!! 於是翻文檔,文檔中又是這樣說的
“(map to guest) Bad User - Means user logins with an invalid password are rejected, unless the username does not exist, in which case it is treated as a guest login and mapped into the guest account.” Combined with a “guest ok = yes” directive under a share will enable user/password-less browsing.
坑爹貨,這下明白了,得還是用
security = user
然後加上
map to guest = Bad Password
再然後配合
guest ok = yes
就可以實現用戶匿名直接訪問了。 接下來就是建立共享目錄了。 很簡單,在下面新建節點
[共享名稱] comment = sharefile path = /var/sharefiles public = yes writable = yes available = yes browsable = yes guest ok = yes create mask = 0777directory mask = 0777
ok了。
測試
這下在windows上就用\ip 就可以看到共享的內容了。
Linux 和 Windows 之間共享文件之 samba