1. 程式人生 > >Linux /centOS7 Samba服務器配置詳解

Linux /centOS7 Samba服務器配置詳解

pdb 格式 group server yum 主配置文件 nag mbus 安裝samba

先滿足前提條件配置靜態ip,有相應的系統用戶(文章中會有匿名訪問的方法),為了實驗的測試,要關閉防火墻,放行Samba的流量:

技術分享圖片

由於Samba服務包文件的依賴關系過多,所以選擇用yum安裝,執行以下操作刪除系統默認的yum配置文件,並編寫yum配置文件:

技術分享圖片

yum配置文件的內容如下:

技術分享圖片

執行以下命令,安裝Samba服務的所有有依賴關系的軟件包:

技術分享圖片

技術分享圖片

安裝成功後,執行以下命令,進入Samba服務的配置文件中,增加共享目錄(在這之前我們要有用來共享的目錄文件,以及系統用戶賬號)

Samba服務的配置文件如下:

技術分享圖片

在 “smb.conf ” 文件中存在三個特殊的配置段:

[ global ] :全局設置:這部分配置項的內容對整個Samba服務器都有效。

[ homes ] :宿主目錄的共享設置:設置Linux用戶的默認共享,對應用戶的宿主目錄。當用戶訪問服務器中與自己用戶名同名的共享目錄時,通過驗證後將自動映射到該用戶的宿主文件夾中。

[ printers ]:打印機共享設置:如果需要共享打印機設備,可以在這部分進行配置

Smb.conf文件中常見的配置項及含義說明:

常見全局配置項的含義
workgroup:所在工作組名稱;

server string:服務器描述信息;

security:安全級別,可用值如下:User(本服務器驗證連接)、server(指定另一臺服務器驗證)、ads(由Windows域控制器驗證);

log file:日誌文件位置,“%m” 變量表示客戶機地址;

passwd backend:設置共享賬戶文件的類型;

comment:對共享目錄的註釋、說明信息;

path:共享目錄在服務器中對應的實際路徑;

browseable:該共享目錄在“網上鄰居”中是否可見;

guest ok:是否允許所有人訪問,等效於“public” ;

writable:是否可寫,與 read only 的作用相反;

我們想要共享某個目錄時,在配置文件的最後另起一行,按照上面的格式輸入相應的信息,就可以了

技術分享圖片

以上是我要共享的目錄,目錄屬主為用戶“test”,為了方便,權限給到了最大,在實際中可以根據情況設置相應的權限,在smb.conf配置文件中寫入以下字段:

技術分享圖片

其中各項含義如下:

comment:共享目錄的描述信息;

path:設置對應共享目錄在服務器上的文件夾路徑;

public:是否所有人可以訪問共享目錄;

read only:是否只讀,與 “writable” 作用相反;

valid users:共享目錄的授權設置,允許哪些用戶訪問共享目錄,這裏設置了兩個用戶 “ test”和 “root”。也可授權一個組,可以使用:“@組名” 的形式,但也需要為組內的每個系統用戶創建對應的Samba共享用戶。

write list:設置共享目錄為 “只讀” 後,也可以單獨授予某些用戶有寫入的權限(這裏授權“root” 用戶可以寫入);

寫入上述信息後,保存退出即可,若要共享多個目錄,另起一行以同樣的格式寫入即可;

保存退出後,可以使用:“testparm” 命令工具對 “smb.coonf ”配置文件的正確性進行檢查,如果發現有錯誤將會進行提醒。如下:

技術分享圖片

沒有提示錯誤,接下來啟動smb服務,並查看smb服務狀態:

技術分享圖片

訪問共享目錄的用戶密碼不是系統用戶的密碼,但用戶名一樣,我們還要使用 “ pdbedit -a ” 創建和系統用戶對應的Samba共享用戶,如下:

技術分享圖片

執行相同的操作把用戶root也添加到共享用戶即可。

命令pdbedit -L:可以列出所有的Samba共享用戶,若只想查看某個用戶,可以指定用戶名作為參數,結合 “ -v” 可以輸出更詳細的信息,如:pdbedit -vL test(輸出共享用戶test的詳細信息)

使用 “ -x ” 選項並指定用戶名,也可刪除共享用戶,例如:“ pdbedit -x -u test”可以刪除共享用戶test

共享用戶建立後,就可以使用客戶端驗證了:

技術分享圖片技術分享圖片技術分享圖片

以上“myshare”為我們設置的共享目錄,“test”是默認共享的用戶宿主目錄

為了安全起見,也可以將一個共享用戶映射為多個不同的名稱(別名),這樣就可以通過共享用戶的別名和密碼來訪問共享資源了,需要先編寫別名的文件,格式如下:

新打開一個文件
技術分享圖片

寫入以下內容:
技術分享圖片

上述內容時把共享用戶 “test” 創建了三個別名,分別是 “ mike” “ jerry” “terry”

創建別名文件後,若要正常啟用共享賬號的別名,還需要修改主配置文件 “ /etc/samba/smb.conf”,添加全局配置項:“username map = /etc/samba/smbusers”,等號後面的路徑為我們編寫的別名文件路徑;

【註意,當Samba服務的配置文件有改動的話,一定要重啟(systemctl restart smb)或重載(systemctl reload smb)服務】

也可以在smb的全局配置中通過 “ hosts allow” 和“ hosts deny” 來進行訪問限制,前者用於指定僅允許訪問共享的客戶機地址,後者用於指定僅拒絕訪問共享的客戶機地址,兩者任選其一即可。

訪問地址限制一般應用於[ global ] 全局配置部分,也可應用於某個具體的共享配置段部分,限制的對象可以是主機名、ip地址或者網絡段地址(省去主機部分),多個地址之間以逗號或空格進行分隔。如下:僅允許來自192.168.4.0/24、173.17.0.0/16 網段的客戶機訪問Samba服務器

也可以在共享目錄或全局配置項中添加以下字段,表示允許匿名訪問:

map to guest = Bad User

技術分享圖片

也可以在Linux客戶端上訪問Samba服務器,簡單的方法就是將共享目錄掛載到本地目錄,訪問也方便,具體格式如下:

技術分享圖片

Linux /centOS7 Samba服務器配置詳解