如何在CentOS 7上安裝和配置Samba

Samba是SMB / CIFS網絡文件共享協議的免費開放源代碼重新實現,允許最終用戶訪問文件,打印機和其他共享資源。

在本教程中,我們將展示如何在CentOS 7上安裝Samba並將其配置為獨立服務器,以通過網絡在不同操作系統之間提供文件共享。

我們將創建以下Samba共享和用戶。

使用者:

  • 管理員 -具有對所有共享的讀寫訪問權限的管理用戶。
  • 喬希 -具有自己的私人文件共享的普通用戶。

分享:

  • 使用者 -所有用戶都可以通過讀取/寫入權限訪問此共享。
  • 喬希 -只有用戶josh和sadmin才能以讀取/寫入權限訪問此共享。

您可以從網絡上的所有設備訪問文件共享。 在本教程的後面,我們還將提供有關如何從Linux,Windows和macOS客戶端連接到Samba服務器的詳細說明。

先決條件

在開始之前,請確保您以具有sudo特權的用戶身份登錄到CentOS 7系統。

在CentOS上安裝Samba#

可從標準CentOS資料庫中獲得Samba。 要將其安裝在CentOS系統上,請運行以下命令:

sudo yum install samba samba-client

安裝完成後,啟動Samba服務並啟用它們以在系統啟動時自動啟動:

sudo systemctl start smb.servicesudo systemctl start nmb.service
sudo systemctl enable smb.servicesudo systemctl enable nmb.service

smbd 服務提供文件共享和打印服務,並偵聽TCP端口139和445。 nmbd 服務向客戶端提供基於IP的NetBIOS命名服務,並偵聽UDP端口137。

配置防火牆號

現在已經在CentOS機器上安裝並運行了Samba,您將需要配置防火牆並打開必要的端口。 為此,請運行以下命令:

firewall-cmd --permanent --zone=public --add-service=sambafirewall-cmd --zone=public --add-service=samba

創建Samba用戶和目錄結構

為了更易於維護和靈活性,而不是使用標準主目錄(/home/user)所有Samba目錄和數據都將位於 /samba 目錄。

首先創建 /samba 目錄:

sudo mkdir /samba

創建一個名為 sambashare。 稍後,我們將所有Samba用戶添加到該組中。

sudo groupadd sambashare 

設置 /samba 目錄組所有權 sambashare

sudo chgrp sambashare /samba

Samba使用Linux用戶和組權限系統,但是它具有與標準Linux身份驗證分開的身份驗證機制。 我們將使用標準Linux創建用戶 useradd 工具,然後使用 smbpasswd 效用。

如簡介中所述,我們將創建一個普通用戶,該用戶將有權訪問其私有文件共享和一個管理帳戶,該帳戶具有對Samba服務器上所有共享的讀寫權限。

創建Samba用戶#

創建一個名為的新用戶 josh,請使用以下命令:

sudo useradd -M -d /samba/josh -s /usr/sbin/nologin -G sambashare josh

useradd 選項具有以下含義:

  • -M -不要創建用戶的主目錄。 我們將手動創建此目錄。
  • -d /samba/josh -將用戶的主目錄設置為 /samba/josh
  • -s /usr/sbin/nologin -禁用此用戶的外殼程序訪問。
  • -G sambashare -將用戶添加到 sambashare 組。

創建用戶的主目錄並將目錄所有權設置為user josh 和組 sambashare

sudo mkdir /samba/joshsudo chown josh:sambashare /samba/josh

以下命令會將setgid位添加到 /samba/josh 目錄,因此在此目錄中新創建的文件將繼承父目錄的組。 這樣,無論哪個用戶創建一個新文件,該文件都將具有組所有者 sambashare。 例如,如果您未將目錄的權限設置為 2770sadmin 用戶創建一個新文件 josh 將無法讀取/寫入此文件。

sudo chmod 2770 /samba/josh

添加 josh 通過設置用戶密碼將用戶帳戶添加到Samba數據庫:

sudo smbpasswd -a josh

系統將提示您輸入並確認用戶密碼。

New SMB password:
Retype new SMB password:
Added user josh.

設置密碼後,通過鍵入以下內容來啟用Samba帳戶:

sudo smbpasswd -e josh
Enabled user josh.

要創建另一個用戶,請重複與創建用戶時相同的過程 josh

接下來,讓我們創建一個用戶和組 sadmin。 該組的所有成員將具有管理權限。 以後,如果您想授予其他用戶管理權限,只需將該用戶添加到 sadmin 組。

通過鍵入以下內容創建管理用戶:

sudo useradd -M -d /samba/users -s /usr/sbin/nologin -G sambashare sadmin

上面的命令還將創建一個組 sadmin 並將用戶添加到兩個 sadminsambashare 組。

設置密碼並啟用用戶:

sudo smbpasswd -a sadminsudo smbpasswd -e sadmin

接下來,創建 Users 共享目錄:

sudo mkdir /samba/users

將目錄所有權設置為用戶 sadmin 和組 sambashare

sudo chown sadmin:sambashare /samba/users

所有經過身份驗證的用戶都可以訪問此目錄。 以下命令配置對成員的寫/讀訪問 sambashare 分組 /samba/users 目錄:

sudo chmod 2770 /samba/users

配置Samba共享#

打開Samba配置文件並添加以下部分:

sudo nano /etc/samba/smb.conf

/etc/samba/smb.conf

[users]
    path = /samba/users
    browseable = yes
    read only = no
    force create mode = 0660
    force directory mode = 2770
    valid users = @sambashare @sadmin

[josh]
    path = /samba/josh
    browseable = no
    read only = no
    force create mode = 0660
    force directory mode = 2770
    valid users = josh @sadmin

這些選項具有以下含義:

  • [users][josh] -登錄時將使用的共享名稱。
  • path -共享的路徑。
  • browseable -是否應在可用共享列表中列出該共享。 通過設置為 no 其他用戶將無法看到該共享。
  • read only -是否在 valid users 列表能夠寫入此共享。
  • force create mode -設置此共享中新創建文件的權限。
  • force directory mode -設置此共享中新創建目錄的權限。
  • valid users -允許訪問共享的用戶和組的列表。 組前綴為 @ 符號。

有關可用選項的更多信息,請參見Samba配置文件文檔頁面。

完成後,使用以下命令重新啟動Samba服務:

sudo systemctl restart smb.servicesudo systemctl restart nmb.service

在以下各節中,我們將向您展示如何從Linux,macOS和Windows客戶端連接到Samba共享。

從Linux連接到Samba共享#

Linux用戶可以使用文件管理器從命令行訪問samba共享或掛載Samba共享。

使用smbclient客戶端#

smbclient 是一個允許您從命令行訪問Samba的工具。 的 smbclient 大多數Linux發行版中尚未預安裝該軟件包,因此您需要使用分發軟件包管理器進行安裝。

安裝 smbclient 在Ubuntu和Debian上運行:

sudo apt install smbclient

安裝 smbclient 在CentOS和Fedora上運行:

sudo yum install samba-client

訪問Samba共享的語法如下:

mbclient //samba_hostname_or_server_ip/share_name -U username

例如,連接到名為 josh 在具有IP地址的Samba服務器上 192.168.121.118 作為用戶 josh 您將運行:

smbclient //192.168.121.118/josh -U josh

系統將提示您輸入用戶密碼。

Enter WORKGROUPjosh's password:

輸入密碼後,您將登錄Samba命令行界面。

Try "help" to get a list of possible commands.
smb: >

掛載Samba共享#

要在Linux上掛載Samba共享,您需要先安裝 cifs-utils 包。

在Ubuntu和Debian上運行:

sudo apt install cifs-utils

在CentOS和Fedora上運行:

sudo yum install cifs-utils

接下來,創建一個安裝點:

sudo mkdir /mnt/smbmount

使用以下命令掛載共享:

sudo mount -t cifs -o username=username //samba_hostname_or_server_ip/sharename /mnt/smbmount

例如掛載一個名為 josh 在具有IP地址的Samba服務器上 192.168.121.118 作為用戶 josh/mnt/smbmount 您將運行的安裝點:

sudo mount -t cifs -o username=josh //192.168.121.118/josh /mnt/smbmount

系統將提示您輸入用戶密碼。

Password for [email protected]//192.168.121.118/josh:  ********

使用GUI#

文件,Gnome中的默認文件管理器具有內置選項,可以訪問Samba共享。

  1. 打開文件,然後單擊側欄中的“其他位置”。
  2. 在“連接到服務器”中,以以下格式輸入Samba共享的地址。 smb://samba_hostname_or_server_ip/sharename
  3. 單擊“連接”,將出現以下屏幕:
  4. 選擇“註冊用戶”,輸入Samba用戶名和密碼,然後單擊“連接”。
  5. 將顯示Samba服務器上的文件。Gnome Samba文件

從macOS連接到Samba共享

在macOS中,您可以從命令行或使用默認的macOS文件管理器Finder訪問Samba共享。 以下步驟顯示了如何使用Finder訪問共享。

  1. 打開“ Finder”,選擇“ Go”,然後單擊“ Connect To”。
  2. 在“連接到”中,以以下格式輸入Samba共享的地址 smb://samba_hostname_or_server_ip/sharenamemacOS Samba連接
  3. 單擊“連接”,將出現以下屏幕:macOS Samba登錄
  4. 選擇“註冊用戶”,輸入Samba用戶名和密碼,然後單擊“連接”。
  5. 將顯示Samba服務器上的文件。macOS Samba文件

從Windows連接到Samba共享

Windows用戶還可以選擇從命令行和GUI連接到Samba共享。 以下步驟顯示了如何使用Windows File Explorer訪問共享。

  1. 打開文件資源管理器,然後在左窗格中右鍵單擊“ This PC”。
  2. 選擇“選擇自定義網絡位置”,然後單擊“下一步”。
  3. 在“ Internet或網絡地址”中,以以下格式輸入Samba共享的地址 \samba_hostname_or_server_ipsharenameWindows Samba連接
  4. 單擊“下一步”,將提示您輸入登錄憑據,如下所示:Windows Samba連接
  5. 在下一個窗口中,您可以為網絡位置鍵入自定義名稱。 默認的將由Samba服務器獲取。Windows Samba名稱
  6. 單擊“下一步”移至連接設置嚮導的最後一個屏幕。
  7. 單擊“完成”,將顯示Samba服務器上的文件。Windows Samba文件

結論#

在本教程中,您學習了如何在CentOS 7上安裝Samba服務器以及如何創建不同類型的共享和用戶。 我們還向您展示了如何從Linux,macOS和Windows設備連接到Samba服務器。

桑巴森托斯

Sidebar