基於smb windows與linux共享

簡介

SMB(全稱是Server Message Block)是一個協議名,它能被用於Web連接和客戶端與服務器之間的信息溝通。

用於局域網分享網絡文件用,也可以打印。

samba 是基於SMB協議(ServerMessage Block,信息服務塊)的開源軟件,samba也可以是SMB協議的商標。SMB是一種Linux、UNIX系統上可用於共享文件和打印機等資源的協議,這種協議是基於Client\Server型的協議,Client端可以通過SMB訪問到Server(服務器)上的共享資源。當Windows是 Client,CentOS是服務器時,通過Samba就可以實現window訪問Linux的資源,實現兩個系統間的數據交互。

 

kali安裝

apt-get install samba

 

配置samba共享目錄

mkdir /root/share 
sudo chmod 777 -R /root/share //賦予可讀可寫權限 
cd /etc/samba 
cp smb.conf smb.conf.bak 
leafpad smb.conf 
//然後在尾部加入 
[share]       
   path =/root/share       
   available = yes       
   browsealbe = yes       
   public= yes       
   writable = yes

 

參數說明:

(a)path:共享的目錄

(b)browseable:是否允許在工作組裏面(no:網上鄰居看不到你的)

(c)public:公開的 public,因爲匿名任何人都能訪問,所以要yes

(d)writetable:可寫

 

配置用戶登錄密碼驗證:

root@kali:~# smbpasswd -a root
 New SMB password: Retype new SMB password: 
root@kali:~# vi /etc/samba/smb.conf 

在/etc/samba/smb.conf末尾追加 

[share]          
  path=/root/share          
  writable=yes          
  public=yes          
  valid users=root 
  root@kali:~# service smbd restart

啓動samba服務器

service smbd start 

service nmbd start 

 

Samba是一套程序,其中最重要的兩個進程是nmbd和smbd:

 

smb:提供SMB / CIFS服務(文件共享和打印)的守護進程,使用SMB協議與客戶進行連接,完成用戶認證,權限管理和文件共享任務。

nmb:提供NetBIOS名稱服務的守護進程,可以幫助客戶端定位服務器和域,相當於WindowsNT中的WINS服務器,如果只是單純的共享文件可以關閉這個服務,這樣就不用在防火牆中開發137、138端口,但是在Windows中“桌面”上的“網絡”裏不會在顯示共享的主機,只能通過“運行” 打開 \\IP 的方式連接到共享的目錄。

 

windows下訪問

 

我的kali的ip是 192.168.71.105

 

在windows運行中輸入

\\192.168.71.105 //win+r快捷鍵

 

在文件夾中可以看見 Share

 

 

驗證是否可讀可寫

在Share文件夾中新建一個 hello.txt,寫入任意字符,如 hello, kali

進入kali,cd /root/Public

查看 hello.txt,顯示 hello, kali

編輯 hello.txt,新加一行,如 hello, windows

 

windows 開啓smb協議

1.進入控制面板,選擇“網絡和 INTERNET”後進入“網絡和共享中心”,如下圖,把活動

網絡選擇爲“網絡:工作網絡”。

   2.選中左側“更改高級共享設置”

 

 

   3.進入高級共享

設置並且選擇該箭頭展開詳細設置項(切勿選擇“公用”,設置將不會生效)。

   4.如下圖進行設置,其中“6.”“7.”“9.” 項可以酌情設置,其餘必須按所示設置。

步驟閱讀

 

5.    5

5.設置完成,win7已經打開smb服務

 

linux連接windows smb

1,列出某個IP地址所提供的共享文件夾

smbclient -L 198.168.0.1 -U username -W domain //(會提示輸密碼)

smbclient -L 198.168.0.1 -U username%password -W domain

 

提示錯誤,可以用以下方法:

 

用-L 命令查看遠程服務器共享的目錄:

 

 smbclient -L //192.168.1.108/ -U username%password   

 smbclient -L 192.168.1.108 -U username%password

 

上面的兩條命令分別用了FTP的地址表達格式和IP地址的表達方式,在ubuntu13.04下親測兩種都行。

 

然後可以看到遠程服務器上的共享目錄都被列了出來:

 

Sharename       Type      Comment

---------       ----      -------

ADMIN$          Disk      遠程管理

C$              Disk      默認共享

E$              Disk      默認共享

F$              Disk      默認共享

forshare        Disk      

IPC$            IPC       遠程 IPC

 

此外,還會報錯:

 

session request to 192.168.1.108 failed (Called name not present)

session request to 192 failed (Called name not present)

session request to *SMBSERVER failed (Called name not present)

NetBIOS over TCP disabled -- no workgroup available

 

不用管它。

 

然後就可以去訪問具體的目錄:

 

smbclient //192.168.1.108/directory -U username%password

 

然後進入smb的子shell:

 

smb: \> 

 

在其中可以用cd(進入目錄),ls(羅列文件和文件夾),get(下載文件),put(上載文件) 等命令進行 相應操作。

 

注意:在哪一個目錄下運行smbclient,smb就會把下載的文件放到該目錄下,某些目錄創建文件需要權限,要sudo smbclient //ip/dir -U username%psd

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章