2021-05-12 14:32:11
RHCE 系列(六):安裝 Samba 並設定 Firewalld 和 SELinux,和 Windows 共用檔案
由於計算機很少作為一個獨立的系統工作,作為一個系統管理員或工程師,就應該知道如何在有多種型別的伺服器之間搭設和維護網路。
在本篇以及該系列後面的文章中,我們會介紹用 Windows/Linux 設定 Samba 和 NFS 伺服器以及 Linux 用戶端。
RHCE 系列第六部分 - 設定 Samba 檔案共用
如果有人讓你設定檔案伺服器用於共同作業或者設定很可能有多種不同型別作業系統和裝置的企業環境,這篇文章就能派上用場。
由於你可以在網上找到很多關於 Samba 和 NFS 背景和技術方面的介紹,在這篇文章以及後續文章中我們就省略了這些部分直接進入到我們的主題。
步驟一: 安裝 Samba 伺服器
我們當前的測試環境包括兩台 RHEL 7 和一台 Windows 8:
1.Samba/ NFS 伺服器[box1 (RHEL 7):192.168.0.18],
2.Samba用戶端#1[box2 (RHEL 7):192.168.0.20]
3.Samba用戶端#2[Windows8 machine:192.168.0.106]
測試安裝 Samba
在 box1 中安裝以下軟體包:
#yum update &&yum install samba samba-client samba-common
在 box2:
#yum update &&yum install samba samba-client samba-common cifs-utils
安裝完成後,就可以設定我們的共用了。
步驟二: 設定通過 Samba 進行檔案共用
Samba 這麼重要的原因之一是它為 SMB/CIFS 用戶端(LCTT 譯註:SMB 是微軟和英特爾制定的一種通訊協定,CIFS 是其中一個版本,更詳細的介紹可以參考 Wiki)提供了檔案和列印裝置,這使得伺服器在用戶端看起來就是一個 Windows 系統(我必須承認寫這篇文章的時候我有一點激動,因為這是我多年前作為一個新手 Linux 系統管理員的第一次設定)。
新增系統使用者並設定許可權和屬性
為了允許組共同作業,我們會在 box1 中用 useradd 命令建立一個有兩個使用者(user1 和 user2)的組 finance 和目錄 /finance。
我們同時會把這個目錄的組所有者更改為 finance 並把許可權設定為 0777(所有者和組屬主可讀可寫可執行):
#groupadd finance
#useradd user1
#useradd user2
#usermod-a -G finance user1
#usermod-a -G finance user2
#mkdir/finance
#chmod0770/finance
#chgrp finance /finance
步驟三: 設定 SELinux 和 Firewalld
在設定 /finance 作為 Samba 共用目錄之前,我們需要像下面那樣停用 SELinux 或設定恰當的布林值和安全選項(否則,SELinux 會阻止用戶端存取共用目錄):
# setsebool -P samba_export_all_ro=1 samba_export_all_rw=1
# getsebool –a |grep samba_export
# semanage fcontext –at samba_share_t"/finance(/.*)?"
# restorecon /finance
另外我們必須確保 firewalld 允許 Samba 流量通過。
# firewall-cmd --permanent --add-service=samba
# firewall-cmd --reload
步驟四: 設定 Samba 共用目錄
現在我們來看看組態檔 /etc/samba/smb.conf 並新增用於共用的章節(section):我們希望組 finance 的成員可以瀏覽 /finance 的內容,在裡面儲存/建立檔案或者子目錄(預設許可權為 0777,組所有者為 finance):
smb.conf
[finance]
comment=Directoryfor collaboration of the company's finance team
browsable=yes
path=/finance
public=no
valid users=@finance
write list=@finance
writeable=yes
create mask=0770
Force create mode=0770
force group=finance
儲存檔案然後用 testparm 工具進行測試。如果這裡有任何錯誤,命令的輸出或提示你需要如何修復。否則,會顯示你 Samba 伺服器設定的回顧:
測試 Samba 設定
如果你要新增另一個公開的共用目錄(意味著不需要任何驗證),在 /etc/samba/smb.conf 中建立另一章節,在共用目錄名稱下面複製上面的章節,只需要把 public=no 更改為 public=yes 並去掉有效使用者(valid users)和寫列表(write list)命令。
步驟五: 新增 Samba 使用者
下一步,你需要新增 user1 和 user2 作為 Samba 的使用者。要做到這點,你需要用 smbpasswd 命令,它會和 Samba 的資料庫進行互動。會提示你輸入一個命令用於你之後和共用目錄連線:
# smbpasswd -a user1
# smbpasswd -a user2
最後,重新啟動 Samda,並讓系統啟動時自動啟動該服務,確保共用目錄對網路用戶端可用:
#systemctl start smb
#systemctl enable smb
# smbclient -L localhost –U user1
# smbclient -L localhost –U user2
驗證 Samba 共用
到這裡,已經正確安裝和設定了 Samba 檔案伺服器。現在讓我們在 RHEL 7 和 Windows 8 用戶端中測試該設定。
步驟六: 在 Linux 中掛載 Samba 共用
首先,確保用戶端可以存取 Samba 共用:
# smbclient –L 192.168.0.18-U user2
在 Linux 上掛載 Samba 共用
(為 user1 重複上面的命令)
正如任何其它儲存媒介,當你需要的時候你可以掛載(之後解除安裝)該網路共用:
#mount//192.168.0.18/finance /media/samba -o username=user1
掛載 Samba 網路共用
(其中 /media/samba 是一個已有的目錄)
或者在 /etc/fstab 檔案中新增下面的條目以自動掛載:
fstab
//192.168.0.18/finance /media/samba cifs credentials=/media/samba/.smbcredentials,defaults 0 0
其中隱藏檔案 /media/samba/.smbcredentials(它的許可權被設定為 600 和 root:root)有兩行內容,指示允許使用共用的賬戶的使用者名稱和密碼:
.smbcredentials
username=user1
password=PasswordForUser1
最後,讓我們在 /finance 中建立一個檔案並檢查許可權和屬性:
#touch/media/samba/FileCreatedInRHELClient.txt
在 Samba 共用中建立檔案
正如你看到的,用許可權 0770 和屬主 user1:finance 建立了檔案。
步驟七: 在 Windows 上掛載 Samba 共用
要在 Windows 上掛載 Samba 共用,進入 ‘我的計算機’ 並選擇 ‘計算機’,‘網路驅動對映’。下一步,為要對映的驅動分配一個驅動器碟符並用不同的認證身份檢查是否可以連線(下面的截圖使用我的母語西班牙語):
在 Windows 中掛載 Samba 共用
最後,讓我們新建一個檔案並檢查許可權和屬性:
在 Windows Samba 共用中新建檔案
在 Windows Samba 共用中新建檔案
#ls-l /finance
這次檔案屬於 user2,因為這是我們用於從 Windows 用戶端中連線的賬戶。
總結
在這篇文章中我們不僅介紹了如何使用不同作業系統設定 Samba 伺服器和兩個用戶端,也介紹了如何設定 Firewalld 和 伺服器中的 SELinux 以獲取所需的組共同作業功能。
最後,同樣重要的是,我推薦閱讀網上的 smb.conf man 手冊 ,檢視其它比本文中介紹的場景更加合適你的場景的設定命令。
正如往常,歡迎在下面的評論框中留下你的評論或建議。
via: http://www.tecmint.com/setup-samba-file-sharing-for-linux-windows-clients/
作者:Gabriel Cánepa 譯者:ictlyh 校對:wxy
本文永久更新連結地址:http://www.linuxidc.com/Linux/2015-11/124971.htm
相關文章