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一項輸入你的域使用者名稱
例:[[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的圖形配置介面包。用圖形介面配置更加簡單