1. 程式人生 > >樹莓派訪問Windows下的目錄檔案

樹莓派訪問Windows下的目錄檔案

背景介紹:

        通過Samba服務就能解決問題。Samba是在Linux和UNIX系統上實現SMB協議的一個免費軟體,由伺服器及客戶端程式構成。SMB(Server Messages Block,資訊服務塊)是一種在區域網上共享檔案和印表機的一種通訊協議,它為區域網內的不同計算機之間提供檔案及印表機等資源的共享服務。SMB協議是客戶機/伺服器型協議,客戶機通過該協議可以訪問伺服器上的共享檔案系統、印表機及其他資源。通過設定“NetBIOS over TCP/IP”使得Samba不但能與區域網絡主機分享資源,還能與全世界的電腦分享資源。

        對於樹莓派與windows共享,和平共處,我們可以用Samba軟體。Samba是一套免費的開源軟體,可以在linux或其他類unix作業系統上實現windows域控制器,檔案服務,列印服務等。

Samba實現了windows系統所使用的核心網路協議:SMB(Server Message Block)

Samba可以提供如下功能:

活動目錄服務(Active Directory Server, ADS) 主域控制器(Primary Domain Controller, PDC) 共享目錄  共享印表機 Samba是一個高效能的服務軟體,只需要更低的硬體就可以實現windows server相同的效能。 使用配置: 通過Samba我們能夠實現windows系統訪問樹莓派的檔案,也可以實現樹莓派訪問windows系統的檔案。 一、windows系統訪問樹莓派的檔案 1、安裝Samba sudo apt-get install samba 安裝完成之後,在windwos上訪問(我的linux server ip:192.168.1.66):
輸入\\192.168.1.66 如圖: Samba的配置 通過標題欄可以看出已經可以訪問了,但裡面沒有共享資源 2、Samba的配置 Samba的配置檔案是/etc/samba/smb.conf,它所使用的語法和windows的.ini檔案差不多。 注:在修改配置練習時,請備份原配置檔案 最簡單的配置 [global] security=share [linux_share] path=/home/linux/share public=yes 這個配置分成兩段: 第一段:global 第二段:linux_share 這是一個自己定義的名字,當從windows訪問時,就可以看到這個共享資料夾的名稱 security=share, 表示安全等級為share,這樣使用者不需要經過密碼驗證了。 path定義了共享的資料夾的路徑 public=yes 表示公開給所有人訪問 配置完成時,檢查一下配置檔案的語法: 用testparm命令 如圖:
Samba的配置


重啟Samba生效 sudo /etc/init.d/smbd restart 現在通過windows訪問可以看到我們建立的共享檔案夾了 Samba的配置

3、Samba的安全認證 Samba提供了安全認證等級,分4個級別: share   :  不需要輸入使用者名稱和密碼 user    :   需要輸入使用者名稱,密碼, Samba對使用者進行認證 server  :   認證工作由另一臺Samba伺服器或者Windows server負責 domain  :   指定一臺windows server來進行使用者認證 其中user是Samba的預設安全認證級別,也就是說在/etc/samba/smb.conf配置檔案中,將security一行改為security=user,那麼使用者在瀏覽共享內容前,就必須輸入使用者名稱和密碼。 現在把安全級別提升為user sudo vim /etc/samba/smb.conf [global] security=user [linux_share] path=/home/linux/share valid users=cdyemail     #指定有效的使用者,多個用可訪問用逗號隔開 public=no                #公開訪問為否 重啟samba服務:sudo /etc/init.d/smbd restart 通過windows訪問如圖: Samba的配置

現在要密碼了,但是輸入linux的使用者名稱和密碼無法通過認證,如果想讓Samba通過認證,需要以下幾點: (1)、在樹莓派系統中建立使用者 (2)、在Samba中建立該使用者 (3)、在windows中建立相同的使用者(和Samba使用者密碼相同) 1)在Ubuntu中建立使用者 如果要將某個資源共享給新使用者,必須先用adduser命令向Ubuntu中新增該使用者。如: 我們打算將某個資源共享給一個叫做cdyemail的使用者,首先要做的就是在Ubuntu系統中建立這個使用者 sudo useradd cdyemail 這樣,系統中就有了cdyemail這個使用者了。 2)在Samba中建立使用者 Ubuntu系統中的使用者,和Samba使用者是兩回事,要將資源共享給某個系統中的使用者,必須將該使用者新增到Samba中。 新增方法: sudo smbpasswd -a cdyemail #smbpasswd是命令, -a表示add user , cdyemail表示使用者名稱 這樣cdyemail的認證資訊就被寫入到Samba中了。重啟Samba生效 新增完使用者和密碼後,現在可以在windows中通過這個使用者名稱和密碼進行訪問了。 3)在windows中建立相同的使用者 在windows客戶端中,我們需要建立與samba中完全相同的使用者名稱和密碼,這樣才能通過Samba的認證,我們在windows客戶端上開啟Samba共享資源時,Samba會自動將windows環境中的使用者資訊傳遞到伺服器上進行驗證,因此如果登入的windows使用者和Samba使用者名稱相同的話(密碼也相同),就不需要輸入密碼了,自動就能通過認證。 4)Samba使用者密碼修改 如果修改密碼了,則windows與Samba都要同步修改。在Samba中修改的方法如下: sudo smbpasswd cdyemail #cdyemail為要修改的使用者名稱 如果windows不修改,則要手動輸入Samba修改後的使用者名稱和密碼,windows修改後要求登出一下(重登入) 4、共享許可權的控制 目錄我們只要以訪問檔案的內容,但沒有許可權修改檔案,也無法向共享目錄新增新檔案。 1)新增檔案寫入許可權 [global] security=user [linux_share] path=/home/linux/share valid users=cdyemail writeable=yes  #新增一句,表示具有寫許可權了 public=no 重啟samba服務 sudo /etc/init.d/smbd restart ,之後就可以寫檔案了,但要求伺服器上的目錄本身有這個許可權。我測試時用rwx許可權測試成功。 對於伺服器目錄許可權的測試: 由於我共享的是share目錄,建立時用root,所以在預設的情況下,即使開了writeable也沒有許可權寫,因為伺服器目錄的本身許可權有問題。 (1)先修改使用者所屬 sudo chown cdyemail:cdyemail (2)只保留cdyemail使用者有許可權訪問這個目錄 sudo chmod u+rwx,g-rwx,o-rwx share (3)訪問,測試寫檔案 測試成功,cdyemail使用者有許可權寫。 二、樹莓派訪問windows系統檔案 首先,需要Windows進行網路對映。將Windows的一個資料夾共享即可(共享-高階共享,輸入一個共享名即可)
然後,在樹莓派上安裝如下程式:
sudo apt-get install mount
sudo apt-get install smbfs
sudo apt-get install samba
 
接著掛接檔案系統,輸入命令就行了:
sudo mount -t cifs -l //192.168.139.212/test  /home/user/folder1
需要輸入Linux的密碼
其中,//192.168.139.212/test代表網路對映位置(就是你windows機器的ip地址和共享資料夾名), /home/user/folder1代表樹莓派下的資料夾位置(需要實現建立一個空的資料夾)。
 
如果每次開機就希望該分割槽已經載入了,那麼可以執行如下的步驟:
sudo gedit /etc/fstab
在檔案末尾新增一行:
//192.168.139.212/test  /home/user/folder1 cifs defaults,auto,username=user,password=xxx
其中username和password就是樹莓派的使用者名稱密碼
然後重啟或者輸入sudo mount -a即可!!!!!!!!!!