1. 程式人生 > >Linux通過Smb與Windows共享目錄

Linux通過Smb與Windows共享目錄

Linux通過Smb與Windows共享目錄  

一、使用Samba從Linux上訪問Windows共享出來的目錄:

要想從Linux訪問Windows上的共享目錄,需要安裝smbclient工具。

在Debian或Ubuntu上可以使用下面的命令安裝:

aptitude install smbclient smbfs

在CentOS上則使用yum命令安裝

yum install samba-client.i386

安裝好smbclient工具,就可以使用mount命令來掛載Windows上的共享目錄了:

mount -t cifs -o username=easwy,passwd='pwd' //windows-server/share /mnt/winshare

在這裡我們使用的檔案系統型別是cifs(Common Internet File System)而不是smbfs,因為Linux Kernel將不再支援smbfs。smbfs的效能也遠不如cifs。

 注:密碼要加上' ' , /mnt/winshare 為linux上要掛載的地方,如果沒有可以自己新建一個目錄,share為windows下的共享目錄。

我們所用的mount -t cifs命令其實會呼叫mount.cifs,如果你在mount時失敗,先檢查一下你的mount.cifs命令是否存在。

如果windows計算機處於域中,那麼在username一項輸入你的域使用者名稱

domain/username就可以了。windows-server可以是一臺計算機的名稱,也可以是一個IP地址。

例:[[email protected] /]# mount -t cifs -o name=admin,passwd='dell' //192.168.1.8/linuxsoft /mnt/samba

如果想列出Windows上的所有共享資源,可以使用命令:

 

smbclient -L //windows-server -U easwy

這條命令會列出windows伺服器上所有的共享目錄和檔案。若是share共享則不需要輸入密碼,直接敲回車即可;相反則必須輸入

例:

[[email protected] root]# smbclient -L //192.168.1.8 -U  langston
added interface ip=192.168.1.85 bcast=192.168.1.255 nmask=255.255.255.0
session request to 192.168.1.8 failed (Called name not present)
session request to 192 failed (Called name not present)
Password: 
Domain=[WORKGROUP] OS=[Windows Server 2003 3790 Service Pack 1] Server=[Windows Server 2003 5.2]
        Sharename      Type      Comment
        ---------      ----      -------
        C$             Disk      預設共享
        su              Disk      
        s2003        Disk      
        IPC$          IPC       遠端 IPC
        收藏夾       Disk      
        tools          Disk      
        ADMIN$     Disk      遠端管理
        linuxsoft     Disk      
        D$             Disk      預設共享
        E$             Disk      預設共享
        222           Disk      
        Server      Comment
        ---------     -------
        DELL-2O5NEINMWR      
        U                    
        ZONEIDC-9            
        ZONEIDC-A            
        ZONEIDC4545           zoneidc
        ZONEIDCNANA          ZoneidcNaNa
        Workgroup                 Master
        ---------                      -------
        WORKGROUP            U
如果出現錯誤資訊;session setup failed:  NT_STATUS_ACCESS_DENIED

  上面方法對於傳檔案來說是非常好,但 有時我們想在 Windows 上編輯檔案後,隨後能在 Linux 上進行 make。有這種方法很麻煩,所以我必須讓Linux 上的目錄進行共享,Windows 進行訪問。 那如何設定Linux的Smb服務?  以達到與Windows資料夾共享的目的呢?

二、使用Samba   從Windows上訪問Linux共享出來的目錄:

方法如下:

現在我們要做的是把linux根分割槽下的/data目錄共享出去。

1 chmod -R 777 /data        // 在Linux 上建立共享目錄, 別忘了-R 否則只能訪問子目錄,不能遞迴訪問

2 service smb restart    // 重啟 SMB

3 useradd test              // 在 Linux 上建立使用者

4 smbpasswd -a test     // 建立 Smb 使用者,此使用者必須是 Linux 上已經建立的

5 service iptables stop    // 關閉防火牆

6  setenforce 0              //  確保setlinux關閉

7  配置共享目錄

vi /etc/samba/smb.conf  在最後新增

[engine]                    
 path = /home/Engine27    
 writeable = yes        
 guest ok = yes         
 valid users = test

就可以在windows下的網上鄰居里,連了。

綜上所述,所以要保證三點,基本就可以訪問了:

1、確保linux下防火牆關閉或者是開放共享目錄許可權
2、確保samba伺服器配置檔案smb.conf設定沒有問題,可網上查閱資料看配置辦法
3、確保setlinux關閉,可以用setenforce 0命令執行。預設的,SELinux禁止網路上對Samba伺服器上的共享目錄進行寫操作,即使你在smb.conf中允許了這項操作。


Smb 服務在 Lan 網路中使用是非常好的,但對於遠端傳送來說,我建議還是用 FTP 更好些,Xmanager 要求的頻寬較高。

 1.新建一個smb使用者

用root登陸,
smbpasswd -a rhh ;增加SMB使用者,同時會提示設定密碼
smbpasswd –x rhh;刪除SMB使用者

2、  設定SMB共享目錄:
vi /etc/samba/smb.conf ,在最後加入想要共享的資料夾:
    [rhh]                     ;共享名稱
        path = /home/rhh      ;共享資料夾路徑
        writeable = yes         ;是否可寫
        guest ok = yes          ;是否允許GUEST訪問

        valid users = root  root許可權

  最好chmod 777 /home/rhh      
3,重啟服務

啟動SMB服務:service smb start
4,winxp下我的電腦--工具--對映網路驅動器--資料夾--\\10.11.11.21\rhh ,輸入使用者名稱root,密碼,就ok了

 #setsebool –P samba_enable_home_dir on
#setsebool –P samba_export_all_ro on
#setsebool –P samba_export_all_rw on

我們可以用命令getsebool –a | grep samba
檢視上面三項是否開啟,開啟的話你的共享應該就正常了。
如果還是出現不能訪問的情況,請清除你的防火牆規則:
iptables -F //清除規則
iptables -L //檢視是否清除掉了!

Windows清除共享記錄
通過Samba連線成功後會在本地記錄登入的帳號密碼,下次可直接連線,如果需要切換帳號可手動刪除連線記錄。
檢視訪問記錄

C:\Users\Administrator>net use

OK                     \\192.168.5.35\public   Microsoft Windows Network
命令成功完成。
清除訪問記錄
C:\Users\Administrator>net use \\192.168.5.35\public /delete

 

另外:

system-config-samba-1.2.41-5.el5.noarch.rpm包是smb的圖形配置介面包。用圖形介面配置更加簡單