windows之間的文件共享很簡單,但是如果要實現windows和linux之間的文件共享,該怎么辦呢?特別是在一個團隊中,一般會有一臺裝有linux系統的服務器,這個需求就顯得很迫切。
samba很好的解決了這個痛點。Samba 是 SMB/CIFS 網絡協議的重新實現, 它作為 NFS 的補充使得在 Linux 和 Windows 系統中進行文件共享、打印機共享更容易實現。ubuntu系統一般自帶samba服務,不需要我們單獨安裝。
samba的部署很簡單,只需要三部:
第一步:創建共享文件夾,并賦予相應的權限
第二步:配置samba參數文件
第三步:測試成功與否
下面以ubuntu16.04 為例來說明如部署該服務。
1.配置文件參數介紹
在正式開始部署之前,我們先來了解一下samba 配置文件的詳細參數。對文件共享服務要求不是很高的讀者可以跳過這一步。直接開始我們的”三部曲“。如果想要配置更為復雜的文件共享服務,可以后面再來參考這部分。
samba的配置文件為/etc/samba/smb.conf,通過修改這個配置文件來可以完成我們的各種需求。
global 參數
在 global 當中的就是一些主機的整體參數了,包括工作組、主機的 NetBIOS 名稱、字符編碼的顯示、登錄文件的設定、 是否使用密碼以及使用密碼驗證的機制等等。在 [global] 部分關于主機名信息方面的參數主要有:
共享文件參數設置
[分享文件夾名稱] 是針對你開放的目錄來進權限方面的設定,包括誰可以瀏覽該目錄、是否可以讀寫等參數。
2.部署開放的samba服務
新建共享文件夾
- sudo mkdir -p /samba/test
注意,一定要給文件設置正確的權限。
- chmod -R 777 /samba/test
配置參數文件
用vim打開Samba配置文件
- sudo vim /etc/samba/smb.conf
注意:建議大家把這里面的配置信息全部刪掉,然后全部自己重寫,以免信息的錯亂。
修改配置文件為
- [global]
- workgroup = WORKGROUP
- server string = Samba Server %v
- netbios name = ubuntu
- security = user
- map to guest = bad user
- dns proxy = no
- [temp]
- path =/samba/test
- browsable =yes
- writable = yes
- guest ok = yes
- read only = no
- creat mode=777
- force creat mode=777
- directory mode = 777
- force directory mode = 777
測試
重啟samba服務
- sudo /etc/init.d/samba restart
在ubuntu上的瀏覽器上輸入file://192.168.1.11/看能否訪問到共享文件```(注意,要把ip地址換成是自己的服務器的地址),看似否可以訪問自己的共享目錄。
在windows上打開資源管理器直接輸入\\192.168.1.11直接訪問。嘗試通過拖放將文件上傳到共享,看看它是否正常工作,傳輸速度如何。注意,在windows端顯示的共享文件夾的名稱是參數配置文件中文件夾的名稱,這里為temp)
3.部署需要密碼的samba服務
添加用戶并創建共享文件夾
創建系統用戶
- sudo useradd user01
設置用戶密碼
- sudo passwd user01
把系統用戶user01添加為samba用戶并設置samba用戶登錄密碼
- sudo smbpasswd -a user01
查看samba用戶
- sudo pdbedit –L
創建共享目錄
- sudo mkdir -p /samba/data
目錄分配最高權限
- sudo chmod 777 /samba/data
更改目錄所屬用戶
- sudo chown root:user1 data
配置參數文件
用vim打開Samba配置文件:
- sudo vim /etc/samba/smb.conf
修改配置文件為
- [global]
- workgroup = WORKGROUP
- server string = Samba Server %v
- netbios name = ubuntu
- security = user
- map to guest = bad user
- dns proxy = no
- [data]
- path =/samba/data
- browsable =yes
- writable = yes
- guest ok = no
- read only = no
- valid users=@user1
測試
測試和上面的一樣,在windows端進入,點擊data文件夾,會發現提示輸入用戶和密碼,輸入對應的用戶名和密碼,拖拽文件進行測試。
4.綁定服務器ip(可選)
服務器重啟后,路由器會重新分配ip,這給使用帶來了很大的不方便。我們最好把服務器的地址綁定到某個固定的ip。這里我們以綁定到192.168.1.11為例。
網絡參數文件位于/etc/network/下面, 執行如下命令:
- suod gedit /etc/network/interfaces
添加以下內容
- auto lo
- iface lo inet loopback
- auto enp0s31f6
- iface enp0s31f6 inet static
- address 192.168.1.11
- gateway 192.168.1.1
- netmask 255.255.255.0
參數的意義如下:
最后,我們還要使配置生效
- /etc/ini.d/network-manager restart
- ifdown enp0s31f6
- ifup enp0s31f6
至此,是不是覺得samba的部署既簡單,又實用,如果感覺有用的話,就趕緊行動起來吧。