samba的安裝與各類問題小記

基礎概念

Samba是在Linux和UNIX系統上實現SMB協議的一個免費軟件,由服務器及客戶端程序構成。實際上也被用於Windows對Linux的文件進行共享。

Linux搭建samba服務

以Ubuntu 16.04爲例子:

  1. 首先更新一下倉庫源以避免各種玄學bug:
apt-get update
  1. 安裝samba服務
apt-get install samba
  1. 給定samba配置
vim /etc/samba/smb.conf

添加以下內容:

[share]
   comment = share folder
   path = /data/share-folder
   create mask = 0700
   directory mask = 0700
   force group = sambas
   public = no
   available = yes
   writable = yes
   browseable = yes

該配置文件指定了以下內容:

  • 訪問該服務的必需位於sambas用戶組裏。(禁止無密碼訪問)
  • 這些用戶對共享文件夾裏的東西可讀可寫。
  • 共享文件夾位於/data/share-folder,映射地址爲/share
  • 新建的文件和文件夾的權限均爲700,即擁有者纔可讀可寫可執行。

Tips:
添加sambas用戶組:groupadd sambas
把一個用戶加入該用戶組:useradd -aG sambas <user-name>

  1. 添加samba密碼:

(假設要爲一個名爲bai的Linux用戶開通samba服務)

smbpasswd bai
  1. 重啓samba服務以應用配置項:
service smbd restart

其它一些雜項:

  • smb默認走的是139端口,有些網絡裏139被ban掉了,可以在/etc/samba/smb.conf中的[global]字段下添加``smb ports = 1399,手動設定服務開放的端口(比如此時設爲1399)。
  • windows可以使用telnet <IP> <PORT>來測試指定的端口是否通暢;否則請檢查samba服務是否正常運行或是否防火牆有所限制。

客戶端訪問

Linux客戶機

以用戶bai和其密碼baibai爲例,若此時samba服務走的是1399端口、運行在IP192.192.192.192、映射的目錄是/share

mkdir /home/remote-share
sudo mount -t cifs -o username=bai,password=baibai,port=1399 //192.192.192.192/share /home/remote-share

就會把遠程的文件夾掛載到/home/remote-share目錄下。

取消掛載請執行指令:sudo umount /data/remote-share

Windows客戶機

要注意的是,Windows默認走139端口且無特殊方法可進行修改;因此,如有必要的話,請利用端口轉發等奇技淫巧來實現對不同端口的samba服務進行對接。

打開我的電腦-映射網絡驅動器:

1.jpg

配置盤符並用samba賬戶登錄:

2.jpg

其它的一些奇技淫巧

事實上,139由於之前的勒索病毒問題被大規模不分青紅皁白的封禁,所以在阿里雲等服務商下是走不通的,解決辦法在這裏提供一些思路:(針對Windows或其它非Linux設備)

  1. 利用Windows的netsh interface portproxy進行端口轉發;
  2. 一樣還是端口轉發,但現在本機跑一個最小的虛擬機或docker鏡像。利用itables指令即可,很簡單——世界上最小的Linux鏡像不過5mb,非常時候幹這件事。
  3. 如果你有多臺主機,在本地的局域網中開一個Linux系統(橋接機),掛載雲端的非139端口的映射目錄;在這個橋接機上把這個掛載了雲端映射目錄再的目錄再次通過samba的139標準端口開放。需要注意的是,需要在橋接機上以root用戶登錄samba服務,才能修改雲端的共享文件夾。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章