windows與linux之間共享資料夾訪問
一、安裝環境
本機系統:Windows 7 旗艦版
VMware:VMware Workstation 9.0
CentOS:CentOS 5.10
網路介面卡設定為:NAT 轉換
二、檢視是否已經安裝“samba”
命令:rpm -qa|grep samba
輸出結果:
這裡順便說一下搭建samba伺服器所需要的基本軟體包:
1. samba——>這個軟體包包含了主要的daemon檔案(smbd和nmbd)
2. samba-common——>提供samba的主要配置檔案(smb.conf)、smb.conf語法檢測程式(testparm)等
3. samba-client——> 當linux作為samba 客戶端的時候,提供了一套所需的工具和指令。
這下看出來了吧,samba主程式根本沒有被安裝
也可以使用“service smb status”命令檢視是否已經安裝,執行該命令如果返回“smb:unrecognized service”,說明服務沒有安裝。
三、安裝“samba”
Samba是在Linux和UNIX系統上實現SMB協議的一個免費軟體,由伺服器及客戶端程式構成。
這裡只介紹本人的安裝過程,
詳細請參考“鳥哥的 Linux 私房菜”之“第十六章、檔案伺服器之二: SAMBA 伺服器
可以通過光碟或網路安裝 samba
1、通過網路安裝
本人就是用的網路安裝,雖然有點慢,但是比較簡單方便。
命令:sudo yum install samba
就一條命令就OK了。
2、通過光碟安裝
僅供參考,本人沒有測試過。
先把iso映象掛載上,一般情況下光碟機的裝置標識為/dev/hdc,
[[email protected] ~]# mkdir /mnt/temp
[[email protected] ~]#mount /dev/hdc /mnt/temp
[[email protected] ~]#ll /mnt/temp/Server | grep samba
samba-3.0.33-3.28-1.el5.i386.rpm
samba-common-3.0.33-3.28-1.el5.i386.rpm
samba-client-3.0.33-3.28-1.el5.i386.rpm
...
[[email protected] ~]#rpm -ivh /mnt/temp/Server/samba-3.0.33-3.28-1.el5.i386.rpm
error: Failed dependencies:
perl(Convert::ASN1) is needed by samba-3.0.33-3.28-1.el5.i386
又報錯了,原來是缺少所依賴的perl ASN1包。
解決方法:安裝perl-Convert-ASN1-0.20-1.1.noarch.rpm
/mnt/temp/Server/
[[email protected] ~]#rpm -ivh /mnt/temp/Server/samba-3.0.33-3.28-1.el5.i386.rpm
這時samba就能正常安裝了。check一下成果:
[[email protected] ~]#service smb status
smbd is stopped
nmbd is stopped
這時已經沒有smb:unrecognized service 這樣的提示了。
四、配置 Samba
<pre id="answer-content-1057139146" class="answer-text mb-10" name="code" style="margin-top: 0px; margin-bottom: 10px; word-wrap: break-word; padding: 0px;">先在/home目錄mkdir 目錄 samba 修改 samba 許可權 chmod 0777 /home/samba
如果需要共享的目錄已經存在 了,那麼只修改目錄的訪問許可權就可以了。
命令:sudo vi /etc/samba/smb.conf
修改幾次地方: 找到以下幾行把註釋去掉 setsebool -P samba_domain_controller on setsebool -P samba_enable_home_dirs on setsebool -P samba_export_all_rw on 修改 workgroup = MYGROUP 為 MYGROUP 工作組為你windows 的工作組,一般為WORKGROUP workgroup = WORKGROUP server string = Samba Server Version %v netbios name = CentOSServer #網路計算機名,可以通過它訪問共享檔案如:\\CentOSServer 跟著新增這兩行 create mask = 0777 directory mask = 0777 然後在檔案最後新增這幾行 [public] comment = public file path = /home/samba #剛才mkdir的資料夾 valid users = root writable = yes browseable = yes :wq命令儲存退出
下面給出我的配置檔案內容,只貼出關鍵部分:
<pre name="code" class="plain"> workgroup = WORKGROUP server string = Samba Server Version %v netbios name = CentOS create mask = 0777 directory mask = 0777
<pre name="code" class="plain" style="font-family: arial, 'courier new', courier, 宋體, monospace; font-size: 14px; line-height: 24px; white-space: pre-wrap; color: rgb(51, 51, 51); background-color: rgb(255, 255, 255);"> security = user # passdb backend = tdbsam
要在“passdb backend = tdbsam”註釋掉。
<span style="color:#cc0000;">有人寫到可以吧sercurity設定成share則所有人可以訪問,我試過了不可以,不曉得是不是因為自己電腦的緣故。</span><span style="color:#333333;"> </span>
剛接觸Linux,原來配置檔案中的分號也是註釋符。
[public]
comment = public file
path = /home/dev
valid [email protected]
writable=yes
browseable=yes
public = yes
admin users = root
create mask = 0664
direcotry mask = 0775
重啟smb服務 service smb restart 新增samba使用者,將root使用者增加為samba使用者 smbpasswd -a root 會提示輸入兩次密碼,這個密碼就是訪問samba的密碼
六 在Windows下對映網路驅動器
<pre id="answer-content-1057139146" class="answer-text mb-10" name="code" style="word-wrap: break-word; margin-top: 0px; margin-bottom: 10px; padding: 0px;">先看看能不能訪問:
在windows系統中通過IP地址或剛才定義的網路計算機名訪問就可以 在位址列輸入 \\192.168.x.x 或 \\CentOSServer
如果共享資料夾可以訪問,開啟Windows資源管理器,新增對映就可以了。
七 常見問題
</pre><pre code_snippet_id="434480" snippet_file_name="blog_20140724_14_7349747" id="answer-content-1057139146" class="answer-text mb-10" name="code" style="word-wrap: break-word; margin-top: 0px; margin-bottom: 10px; padding: 0px;">無法訪問遠端主機
先停止防火牆看看 service iptables stop
2、共享目錄無法訪問
1)關閉防火牆:
#sevice iptables stop
2)修改 /etc/samba/smb.conf,具體配置網上有,我的如下: security = share ---- 這個要用上,share表示安全最低級別,其次是user,最高是server [共享目錄名] path = /home/使用者名稱/共享目錄名 read only = no -----這個需要在前面用分號註釋掉 writeable = yes browseable = yes public = yes guest ok = yes
3)SELinux作怪 修改/etc/sysconfig/selinux 把enforcing改成disabled;然後命令列setenforce 0; 或者用Rainsome兄說的 使用selinux強制策略:chcon -R -t samba_share_t /home/suyang/"Fedora Samba" 4)修改目錄許可權 #chmod 777 /home/wind ; #chmod 777 /home/wind/smbShare; 特別是前面一個做為上層目錄許可權也需要修改!!! 5)重啟samba服務
#service smb restart
或者
/etc/rc.d/init.d/smb restart
當然你要在linux與windows之間互相能ping 通。