最近在做Linux下的軟體開發,但又想使用Windows下的編程工具“Source Insight”。
二、安裝環境
本機系統:Windows 7 旗艦版
VMware:VMware Workstation 9.0
CentOS:CentOS 6.4
網路介面卡設定為:NAT 轉換
三、查看是否已經安裝“samba”
命令:rpm -qa|grep samba
輸出結果:
samba-client-3.0.33-3.28-1.el5
samba-common-3.0.33-3.28-1.el5
這裡順便說一下搭建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
先在/home目錄mkdir 目錄 samba修改 samba 許可權 chmod 0777 /home/samba
如果需要共用的目錄已經存在 了,那麼只修改目錄的存取權限就可以了。
命令:sudo vi /etc/samba/smb.conf
修改幾次地方:找到以下幾行把注釋去掉setsebool -P samba_domain_controller onsetsebool -P samba_enable_home_dirs onsetsebool -P samba_export_all_rw on修改 workgroup = MYGROUP 為 MYGROUP 工作群組為你windows 的工作群組,一般為WORKGROUPworkgroup = WORKGROUPserver string = Samba Server Version %vnetbios name = CentOSServer #網路電腦名稱,可以通過它訪問共用檔案如:\\CentOSServer跟著添加這兩行create mask = 0777directory mask = 0777然後在檔案最後添加這幾行[public]comment = public filepath = /home/samba #剛才mkdir的檔案夾valid users = rootwritable = yesbrowseable = yes:wq命令儲存退出
下面給出我的設定檔內容,只貼出關鍵區段:
workgroup = WORKGROUP server string = Samba Server Version %v netbios name = CentOS create mask = 0777 directory mask = 0777
security = user# passdb backend = tdbsam
要在“passdb backend = tdbsam”注釋掉。
剛接觸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下映射網路磁碟機
先看看能不能訪問:
在windows系統中通過IP地址或剛才定義的網路電腦名稱訪問就可以在地址欄輸入\\192.168.x.x或\\CentOSServer
如果共用資料夾可以訪問,開啟Windows資源管理員,添加映射就可以了。
七、常見問題
1、無法訪問遠程主機
先停止防火牆看看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 通。