Ubuntu配置Samba文件共用伺服器

来源:http://www.cnblogs.com/supernalsnow/archive/2016/05/31/5545254.html
-Advertisement-
Play Games

Samba是在Linux和UNIX系統上實現SMB協議的一個免費軟體,由伺服器及客戶端程式構成。SMB(Server Messages Block,信息服務塊)是一種在區域網上共用文件和印表機的一種通信協議,它為區域網內的不同電腦之間提供文件及印表機等資源的共用服務。 環境:Win7_64位+VM ...


  Samba是在Linux和UNIX系統上實現SMB協議的一個免費軟體,由伺服器及客戶端程式構成。SMB(Server Messages Block,信息服務塊)是一種在區域網上共用文件和印表機的一種通信協議,它為區域網內的不同電腦之間提供文件及印表機等資源的共用服務。

  環境:Win7_64位+VMware11+Ubuntu1204

  一,同其他網路服務一樣,使用Samba服務必須要保證伺服器與客戶端能夠聯網,即能夠ping通,否則請先調試網路。

  二,如果使用的是Ubuntu1204以前的版本,建議先卸載samba,smbclient,samba-common。  

    1 sudo apt-get remove samba-common
    2 sudo apt-get remove smbclient
    3 sudo apt-get remove samba

    下載安裝Samba服務:

    1 sudo apt-get install samba
    2 sudo apt-get install samba-common 
    3 sudo apt-get install smbfs       //在舊版的Ubuntu中,你可能需要使用 smbfs替代cifs-utils。 
    4 sudo apt-get install cifs-utils   //新版本 ubuntu1204已安裝

    註:如果在安裝samba過程中出現錯誤

        samba : Depends: libwbclient0 (= 2:3.6.3-2ubuntu2) but 2:3.6.3-2ubuntu2.3 is to be installed

      則卸載後重新安裝samba

        sudo apt-get remove libwbclient0 samba-common samba

        sudo apt-get install samba  //apt-get會自動補全依賴包

 

  三,創建共用目錄

    sudo mkdir /home/share
    sodu chmod 777 /home/share

 

  四,開始配置/etc/samba/smb.conf

   1. 保存現有的配置文件

      sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

   2. 修改現配置文件

      sudo vi /etc/samba/smb.conf

   3. 在smb.conf最後添加

    [share]
        path = /home/share    #共用目錄絕對路徑
        available = yes     #共用資源可用
        browseable = yes      #共用目錄可瀏覽
        public = yes       #允許匿名用戶登錄
        writable = yes      #共用目錄可寫

    【共用屬性詳解】

comment = 任意字元串

  說明:comment是對該共用的描述,可以是任意字元串。 path = 共用目錄路徑   說明:path用來指定共用目錄的路徑。可以用%u、%m這樣的巨集來代替路徑里的unix用戶和客戶機的Netbios名,用巨集表示主要用於[homes]共用域。例如:如果我們不打算用home段做為客戶的共用,而是在/home/share/下為每個Linux用戶以他的用戶名建個目錄,作為他的共用目錄,這樣path就可以寫成:path = /home/share/%u; 。用戶在連接到這共用時具體的路徑會被他的用戶名代替,要註意這個用戶名路徑一定要存在,否則,客戶機在訪問時會找不到網路路徑。同樣,如果我們不是以用戶來劃分目錄,而是以客戶機來劃分目錄,為網路上每台可以訪問samba的機器都各自建個以它的netbios名的路徑,作為不同機器的共用資源,就可以這樣寫:path = /home/share/%m 。 browseable = yes/no   說明:browseable用來指定該共用是否可以瀏覽。 writable = yes/no   說明:writable用來指定該共用路徑是否可寫。 available = yes/no   說明:available用來指定該共用資源是否可用。 admin users = 該共用的管理者   說明:admin users用來指定該共用的管理員(對該共用具有完全控制許可權)。在samba 3.0中,如果用戶驗證方式設置成“security=share”時,此項無效。   例如:admin users =bobyuan,jane(多個用戶中間用逗號隔開)。 valid users = 允許訪問該共用的用戶   說明:valid users用來指定允許訪問該共用資源的用戶。   例如:valid users = bobyuan,@bob,@tech(多個用戶或者組中間用逗號隔開,如果要加入一個組就用“@+組名”表示。) invalid users = 禁止訪問該共用的用戶   說明:invalid users用來指定不允許訪問該共用資源的用戶。   例如:invalid users = root,@bob(多個用戶或者組中間用逗號隔開。) write list = 允許寫入該共用的用戶   說明:write list用來指定可以在該共用下寫入文件的用戶。   例如:write list = bobyuan,@bob public = yes/no   說明:public用來指定該共用是否允許guest賬戶訪問。 guest ok = yes/no   說明:意義同“public”。

 

    註:如果不習慣使用配置文件,也可以使用圖形界面

    安裝Ubuntu samba圖形管理界面

      sudo apt-get install system-config-samba

    啟動samba圖形管理界面
      sudo system-config-samba

  

  五. 創建samba帳戶

    sudo touch /etc/samba/smbpasswd
    sudo smbpasswd -a john

   然後會要求你輸入samba帳戶的密碼

   [如果沒有這一步,當你登錄時會提示 session setup failed: NT_STATUS_LOGON_FAILURE]

   

    smbpasswd 命令的用法:
    smbpasswd -a 增加用戶(要增加的用戶必須以是系統用戶)   
    smbpasswd -d 凍結用戶,就是這個用戶不能在登錄了   
    smbpasswd -e 恢復用戶,解凍用戶,讓凍結的用戶可以在使用   
    smbpasswd -n 把用戶的密碼設置成空,要在global中寫入 null passwords -true   
    smbpasswd -x  刪除用戶  

 

  六,配置完成後要重啟samba
      sudo /etc/init.d/smbd restart

 

  七,測試及使用

    測試:輸入smbclient -L //localhost/share

    使用:到windows在文件夾處輸入 "\\" + "Ubuntu機器的ip或主機名" + "\\" + "share"

 

高級:用戶賬號映射


   samba的用戶帳號信息是保存在smbpasswd文件中滴,而且可以訪問samba伺服器的帳號也必須對應一個同名的系統帳號。基於這 一點,所以,對於一些hacker來說,只要知道samba伺服器滴samba帳號,就等於是知道了Linux系統帳號,只要crack其samba帳號密碼加以利用就可以攻擊samba伺服器。所以我們要使用用戶帳號映射這個功能來解決這個問題。 

用戶帳號映射這個功能需要建立一個帳號映射關係表,裡面記錄了samba帳號和虛擬帳號的對應關係,客戶端訪問samba伺服器時就使用虛擬來登錄。 

1)編輯主配置文件vi /etc/samba/smb.conf 
在global下添加一行欄位username map = /etc/samba/smbusers開啟用戶帳號映射功能。 

2)編輯 vi /etc/samba/smbusers 
smbusers文件保存帳號映射關係,其有固定滴格式: 
samba帳號 = 虛擬帳號(映射帳號) 
  myname = networkusername 
帳號myname就是我們上面建立的samba帳號(同時也是Linux系統帳號),networkusername就是映射的帳號名(虛擬帳號),帳號 myname在我們訪問共用目錄時只要輸入networkusername就可以成功訪問了,但是實際上訪問samba伺服器的還是我們的myname帳號,這樣一來就解決了安全問題。 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前面三篇通過CPU、記憶體、磁碟三巨頭,講述瞭如何透過現在看本質,怎樣定位伺服器三巨頭反映出的問題。為了方便閱讀給出鏈接: Expert 診斷優化系列 你的CPU高麽? Expert 診斷優化系列 記憶體不夠用麽? Expert 診斷優化系列 冤枉磁碟了 通過三篇文章的基本介紹,可以看出系統的語句如果不 ...
  • 使用 mysqladmin 創建資料庫 使用普通用戶,你可能需要特定的許可權來創建或者刪除 MySQL 資料庫。 所以我們這邊使用root用戶登錄,root用戶擁有最高許可權,可以使用 mysql mysqladmin 命令來創建資料庫。 實例 以下命令簡單的演示了創建資料庫的過程,數據名為 TUTOR ...
  • db.集合名稱.update({query},{update},upsert, multi})query:過濾條件update:修改內容upsert:如果不存在查詢條件查出的記錄,是否插入一條數據,預設是falsemulti:是否只修改查詢條件查出的第一條記錄,預設是false 把整條數據都修改了, ...
  • 訪問FTP站點下載文件,提示“當前的安全設置不允許從該位置下載文件”的解決方案: ...
  • 最近用linux在玩Tomcat,啟動的時候總是會報錯(8080/8009/8005) 於是整理了一下網上零亂的查看PID和埠的命令,以備記錄。 1.由埠號查詢PID號 首先myeclipse報錯的時候會提示:“8009埠被占用”,那麼你不得不依據此埠去查看該埠下運行的哪些進程 使用命令來 ...
  • 作為收購 NeXT 公司的結果,蘋果公司獲得了 NeXTSTEP 架構中的 Mach 和 Objective-C 等設計。儘管 NeXTSTEP 本身已經不再發展了,但是其中的組件在 OS X 中獲得了新生。事實上,可以將 OS X 看成是 Mac OS Classic 和NeXTSTEP 的融合, ...
  • 操作系統:CentOS6.6_32位 控制腳本目錄/etc/rc.d,該目錄下存在各個運行級別的腳本文件,執行ls /etc/rc.d,顯示結果為:init.d rc rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d rc.local rc.sysinit。 /et ...
  • 當我們想操控一個硬體的時候,我們有必要先去瞭解這個硬體的一些物理特性,比如如何點亮LED,那麼我們首先就得瞭解LED的一些特性,如下: LED本身有兩個接線點,一個是LED的負極,一個是LED的正極。LED這個硬體本身存在的作用就是亮或者不亮,而我們想要LED亮或者不亮,那就可以通過對LED的正負極 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...