文件服務器通常需要適應各種不同的客戶端系統。 在 Ubuntu 22.04 Jammy Jellyfish 上運行 Samba 允許 Windows 系統以及其他 Linux 系統和 MacOS 連接和訪問文件。 另一種解決方案是在 Ubuntu 22.04 上運行 FTP/SFTP 服務器,它還可以支持來自許多系統的連接。

本教程的目標是在 Ubuntu 22.04 Jammy Jellyfish 上配置一個基本的 Samba 服務器,以共享用戶主目錄並提供對選定目錄的讀寫匿名訪問。

有無數可能的其他 Samba 配置,但是本指南的目的是讓您開始了解一些基礎知識,這些基礎知識可以在以後擴展以實現更多功能以滿足您的需求。 您還將學習如何從 Windows 系統訪問 Ubuntu 22.04 Samba 服務器。

In this tutorial you will learn:

  • 如何安裝 Samba 服務器
  • 如何配置基本 Samba 共享
  • 如何共享用戶主目錄和公共匿名目錄
  • 如何在 MS Windows 10 上掛載 Samba 共享
如何在 Ubuntu 22.04 Jammy Jellyfish Linux 上配置 Samba 服務器共享
軟件要求和 Linux 命令行約定
類別 使用的要求、約定或軟件版本
系統 Ubuntu 22.04 果醬水母
軟件 桑巴
其他 以 root 身份或通過 sudo.
約定 # – 要求給定的 linux 命令以 root 權限直接作為 root 用戶或使用 sudo
$ – 要求以普通非特權用戶身份執行給定的 linux 命令

如何在 Ubuntu 22.04 上配置 Samba 服務器共享的分步說明



  1. 讓我們從安裝 Samba 服務器開始。 這是一項相當瑣碎的任務。 首先,打開命令行終端並安裝 tasksel 如果它在您的 Ubuntu 22.04 系統上尚不可用。 準備好後,使用 tasksel 安裝 Samba 服務器。
    $ sudo apt update
    $ sudo apt install tasksel
    $ sudo tasksel install samba-server
    
  2. 我們將從一個全新的干淨配置文件開始,同時我們還保留默認配置文件作為備份以供參考。 執行以下 Linux 命令複製現有配置文件並創建一個新的 /etc/samba/smb.conf 配置文件:
    $ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
    $ sudo bash -c 'grep -v -E "^#|^;" /etc/samba/smb.conf_backup | grep . > /etc/samba/smb.conf'
    
  3. Samba 有自己的用戶管理系統。 但是,存在於 samba 用戶列表中的任何用戶也必須存在於 /etc/passwd. 如果您的系統用戶尚不存在,因此無法位於其中 /etc/passwd,首先使用 useradd 在創建任何新的 Samba 用戶之前。 一旦您的新系統用戶,例如。 appbutton 退出,使用 smbpasswd 創建一個新的 Samba 用戶:
    $ sudo smbpasswd -a appbutton
    New SMB password:
    Retype new SMB password:
    Added user appbutton.
    
  4. 下一步是添加主目錄共享。 使用您最喜歡的文本編輯器,例如。 原子,崇高,編輯我們的新 /etc/samba/smb.conf Aamba 配置文件,並在文件末尾添加以下行:
    [homes]
       comment = Home Directories
       browseable = yes
       read only = no
       create mask = 0700
       directory mask = 0700
       valid users = %S
    
  5. 或者,添加一個可供匿名/來賓用戶訪問的新公開可用的讀寫 Samba 共享。 首先,創建一個您希望共享的目錄並更改其訪問權限:
    $ sudo mkdir /var/samba
    $ sudo chmod 777 /var/samba/
    
  6. 準備好後,再次打開 /etc/samba/smb.conf samba 配置文件,並在文件末尾添加以下行:
    [public]
      comment = public anonymous access
      path = /var/samba/
      browsable =yes
      create mask = 0660
      directory mask = 0771
      writable = yes
      guest ok = yes
    
  7. 檢查您當前的配置。 您的 /etc/samba/smb.conf samba 配置文件在此階段應類似於以下內容:


    [global]
       workgroup = WORKGROUP
       server string = %h server (Samba, Ubuntu)
       log file = /var/log/samba/log.%m
       max log size = 1000
       logging = file
       panic action = /usr/share/samba/panic-action %d
       server role = standalone server
       obey pam restrictions = yes
       unix password sync = yes
       passwd program = /usr/bin/passwd %u
       passwd chat = *Entersnews*spassword:* %nn *Retypesnews*spassword:* %nn *passwordsupdatedssuccessfully* .
       pam password change = yes
       map to guest = bad user
       usershare allow guests = yes
    [printers]
       comment = All Printers
       browseable = no
       path = /var/spool/samba
       printable = yes
       guest ok = no
       read only = yes
       create mask = 0700
    [print$]
       comment = Printer Drivers
       path = /var/lib/samba/printers
       browseable = yes
       read only = yes
       guest ok = no
    [homes]
       comment = Home Directories
       browseable = yes
       read only = no
       create mask = 0700
       directory mask = 0700
       valid users = %S
    [public]
      comment = public anonymous access
      path = /var/samba/
      browsable =yes
      create mask = 0660
      directory mask = 0771
      writable = yes
      guest ok = yes
  8. 我們的基本 Samba 服務器配置已完成。 請記住,在進行任何更改後始終重新啟動您的 samba 服務器 /etc/samba/smb.conf 配置文件:
    $ sudo systemctl restart smbd
    
  9. (可選)讓我們創建一些測試文件。 成功掛載 Samba 共享後,我們應該可以使用以下文件:
    $ touch /var/samba/public-share 
    $ touch /home/appbutton/home-share 
    

從 MS Windows 訪問 Ubuntu 22.04 Samba 共享

  1. 在這個階段,我們準備將注意力轉向 MS Windows。 每個 MS Windows 版本的掛載網絡驅動器目錄可能略有不同。 本指南使用 MS Windows 10 作為 Samba 客戶端。 首先,打開你的 Windows Explorer 然後右鍵單擊 Network 然後點擊 Map network drive….

    在 MS Windows 上映射網絡驅動器選項
    在 MS Windows 上映射網絡驅動器選項

  2. 接下來,選擇驅動器號並鍵入 Samba 共享位置,即您的 Samba 服務器 IP 地址或主機名,後跟用戶主目錄的名稱。 確保你打勾 Connect using different credentials 如果您的用戶名和密碼與使用創建的 Samba 不同 smbpasswd 在 Ubuntu 22.04 上。

    選擇網絡文件夾配置選項,然後單擊下一步
    選擇網絡文件夾配置選項,然後單擊下一步

  3. 輸入之前在 Ubuntu 22.04 上創建的 Samba 用戶密碼。


    輸入 Samba 密碼
    輸入 Samba 密碼

  4. 瀏覽用戶的主目錄。 您應該能夠看到之前創建的測試文件。 以及您應該能夠創建新的目錄和文件。

    主目錄是可瀏覽的,具有讀寫權限
    主目錄是可瀏覽的,具有讀寫權限

  5. 對公開匿名的 samba 目錄共享也重複安裝步驟。

    在 Windows 中將公共 Samba 目錄掛載到不同的驅動器號
    在 Windows 中將公共 Samba 目錄掛載到不同的驅動器號

  6. 確認您可以訪問 Public samba 共享目錄。

    連接到公共 Samba 共享並且可以查看測試文件
    連接到公共 Samba 共享並且可以查看測試文件

全部完成。 現在可以隨意為您的 Samba 共享服務器配置添加更多功能。

結束的想法



在本教程中,我們學習瞭如何在 Ubuntu 22.04 Jammy Jellyfish Linux 上安裝 Samba。 我們還了解瞭如何創建 Samba 共享、Samba 用戶以及配置讀寫訪問權限。 然後,我們完成了從運行 MS Windows 的客戶端計算機連接到 Samba 服務器的步驟。 使用本指南應該允許您創建可以託管來自各種操作系統的連接的文件服務器。