1. 程式人生 > >centos 7 samba伺服器的配置

centos 7 samba伺服器的配置

samba伺服器的搭建

1.samba伺服器的基礎內容概述
samba使用cifs協議監聽在137/udp,138/udp,139/tcp,445/tcp
其中137,138是用來實現NetBIOS:windows基於主機實現互相通訊的機制;

2.samba支援三種服務應用:

nmbd:提供netbios服務,實現了在Linux上提供netbois協議
smbd:實現cifs協議
winbindd:可以讓提供samba服務的Linux的主機加入到windows的AD域中 

3.samba使用者:
賬號:都是系統使用者
密碼:samba服務自有密碼檔案,賬號可能是passwd中的賬號,但是密碼是samba自己的密碼將系統使用者新增為samba的命令:smbpasswd
使用格式為smbpasswd:
        -a Sys_User:新增系統使用者為samba使用者
smbpasswd -a smbuser1
        -d : 禁用
        -e : 啟用
        -x:刪除

4.配置檔案為/etc/samba/smb.conf
其中全域性引數為:
[global]
 confi file = /etc/samba/smb.conf.xxx                                                        #表示可以讓讓你使用另一個配置檔案來覆蓋預設的配置檔案。如果檔案 不存在,則該項無效。
workgroup = WORKGROUP                                       #工作組名稱
interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24                              #設定samba伺服器監聽網絡卡,可以寫網絡卡名稱或IP地址,預設註釋
hosts allow = 127. 0.0.1 ,192.168.1.1                                                         #設定允許連線到samba伺服器的客戶端,預設註釋
hosts deny =192.168.1.0/255.255.255.0                                                     #設定不允許連線到samba伺服器的客戶端,預設註釋
log level =1                                                                                                  #日誌檔案安全級別,0~10級別,預設0
另外還可以設定自定義共享:

[shared_name]

path=/path/to/share_directory                                                                                              #表示要掛載的檔案路徑
browseable = yes/no                                                                                                              #設定共享是否可瀏覽,如果no就表示隱藏,需要通過IP+共享名稱進行訪問
writable = yes/no                                                                           #設定共享是否具有可寫許可權
read only = yes/no                                                                           #設定共享是否具有隻讀許可權
write list = username                                                                                #設定在共享具有寫入許可權的使用者,例如例如write list = user1,user2,@group1,@group2(多使用者或組使用逗號隔開,@group表示group使用者組)

public = yes/no                                    #設定共享是否允許guest賬戶訪問


實驗環境兩臺centos 7.0作業系統的主機,一臺windows的主機
實驗一:首先我們配置Linux為samab伺服器,windows為客戶端

samba伺服器配置
首先安裝程式包
yum install -y samba
啟動服務並設定開機自啟
systemctl start smb
systemctl enable smb
systemctl start nmb
systemctl enable nmb


備註:之所以啟動nmb服務是為了讓系統支援netbois協議,這樣windows客戶端在登入共享目錄的時候可以使用主機名進行登入,如果這項服務沒有啟動的話,預設只支援IP地址的方式登入samba伺服器。
我們這裡來檢視一下服務啟動以後程序所監聽的埠
netstat -nual | grep 137

將samba服務新增到防火牆規則中

建立一個系統賬戶作為samba的登入賬戶
useradd tom
將系統賬號新增為samba賬戶
smbpasswd -a tom
因為windows系統預設的工作組為workgroup,所以更改samba伺服器的預設工作組
編輯配置檔案
vim /etc/samba/smb.conf
找到workgroup將後面的值更改為workgroup

配置好之後重啟服務
systemctl restart smb
systemctl restart nmb
登入windows主機進行配置
開啟我的電腦並在位址列輸入samba服務的IP地址,輸入賬戶密碼並登入

我們在tom資料夾中建立一個名為a.txt的文字文件
在samba伺服器中登入tomz賬戶來驗證
su - tom

備註:因為這裡我們是使用的TOM使用者登入所以建立的a.txt文件只能在tom使用者的家目錄下,接下來我們配置一個共享目錄
編輯samab服務的配置檔案,在配置檔案的末尾加入以下資訊


重啟服務
systemctl restart smb
systemctl restart nmb
我們在windows中檢視會生成一個share的共享目錄

在共享目錄中建立兩個文字文件a.txt跟b.txt
然後我們登入另一臺centos 7伺服器作為客戶端進行驗證
安裝samba客戶端軟體
yum install -y samba-client
smbclient //192.168.32.133/share -U tom
備註:這裡為我們要注意IP地址後面跟的路徑是在samba配置檔案中定義的[share]這個區域名稱,而不是path後面跟的目錄的名稱。

登陸後發現共享目錄中有剛剛建立的兩個文字文件

實驗二:下面我們來配置一下,在一臺samba伺服器上配置一個共享目錄/test,可以被另一臺centos 7的samba客戶端訪問,共享目錄可以被瀏覽,使用者jerry必須以讀寫的方式訪問此共享目錄,任何使用者可以通過使用者tom 來臨時獲取寫的許可權,此共享永久掛載在客戶端的/mnt/data目錄下
首先我們編輯samba伺服器的配置檔案在裡面新增選項

然後建立jreey使用者
useradd jerry
smbpasswd -a jerry
建立共享目錄
mkdir test
更改目錄的許可權,讓jerry使用者可以讀寫
setfacl -m -u:jerry:rw- /test
切換到samba客戶端主機
建立掛載目錄
mkdir /mnt/data
編輯/etc/fstab檔案
在裡面定義 //192.168.32.133/test /mnt/data cifs defaults,multiuser,username=tom,password=tom,sec=ntlmssp 0 0

對共享目錄進行掛載
mount -a
檢視掛載結果

最後進行驗證
隨便建立一個使用者
useradd test
su -test
我們切換到/mnt/data目錄下用test使用者建立一個檔案,發現無法建立

然後我們使用tou使用者來臨時獲取許可權
cifsscreds add 192.168.32.133 -u tom

這樣一個簡單的samba的伺服器就配置完成