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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...