1. 程式人生 > >Redhat7系統中的samba服務

Redhat7系統中的samba服務

samba

簡介

Samba是在Linux和UNIX系統上實現SMB協議的一個免費軟體,由伺服器及客戶端程式構成。SMB(Server Messages Block,資訊服務塊)是一種在區域網上共享檔案和印表機的一種通訊協議,它為區域網內的不同計算機之間提供檔案及印表機等資源的共享服務。SMB協議是客戶機/伺服器型協議,客戶機通過該協議可以訪問伺服器上的共享檔案系統、印表機及其他資源。通過設定“NetBIOS over TCP/IP”使得Samba不但能與區域網絡主機分享資源,還能與全世界的電腦分享資源。

相關軟體包

samba.x86_64      伺服器應用程式
samba-client.x86_64       客戶端應用程式
samba-common     Samba的支援檔案
這些都可以直接用yum安裝

預設埠

通常使用TCP/445進行所有連線。還使用UDP137、UDP138和TCP/139進行向後相容

基本配置

實驗環境

客戶端(redhat7.0):server1–172.25.66.11
伺服器(redhat7.0):server2–172.25.66.12

實驗操作

一:
在伺服器server2中
1:yum install samba samba-client samba-common -y
2:start ebable(開啟並設定開機自啟動samba服務)
在這裡插入圖片描述
3:關火牆

在客戶端server1中
1:yum install samba-client -y
2:smbclient -L

//172.25.66.12 看不到任何檔案
因為是匿名使用者登陸,會提示要輸入root密碼,不用輸入,直接回車
在這裡插入圖片描述
在服務端server2中:
1:新增使用者
smbpasswd -a student #####這個使用者必須是已經存在的,下面輸入的密碼跟使用者以前的密碼無關##
2:pdbedit -L ####檢視新增的使用者
3:pdbedit -x student ###刪除新增的使用者
4:將使用者重新新增 (sudent,westos)
在這裡插入圖片描述

在客戶端server1中:
1:訪問server2的student目錄
smbclient -L //172.25.66.12 -U student 密碼為剛才在server2中設定的 ####可以看見student檔案
在這裡插入圖片描述


2:進入student目錄
smbclient //172.25.66.12/student -U student
ls後如果出現 NT_STATUS_ACCESS_DENIED 原因是selinux沒關,可以將selinux設定為disabled狀態,也可以將selinux開關中的samba_enable_home_dirs設定為on(開啟)狀態
設定好後再次進入student目錄
在這裡插入圖片描述
這次我們可以看到server2中student使用者的家目錄裡面的內容了

二:從client向server中上傳檔案
在客戶端server1中:
1:進入要上傳的檔案所在的目錄 put 檔案 (舉例:上傳 /etc下的passwd檔案到服務端的student目錄)
(1):進入/etc
(2):smbclient //172.25.66.12/student -U student
(3):put passwd 然後ls檢視
在這裡插入圖片描述
這種方法太麻煩? 那試試下面的方法
2:掛載
將server2中的student使用者的家目錄直接掛載道客戶端的/mnt目錄上,然後就可以直接進入/mnt目錄操作
mount //172.25.66.12/student /mnt cifs -o defaults,username=student,password=1234
在這裡插入圖片描述
進入/mnt操作
在這裡插入圖片描述

3:開機自動掛載
編寫 /etc/rc.d/rc.local
mount //172.25.66.12/student /mnt -o username=student,password=redhat
在這裡插入圖片描述
重啟後df檢視掛載
在這裡插入圖片描述

samba黑白名單

samba黑白名單即為samba的訪問控制,通過對IP或者主機名的限制來控制客戶機對samba伺服器的訪問
一:在伺服器server2中:
1:rpm -qc samba-common ##檢視samba的配置檔案
在這裡插入圖片描述
2:vim /etc/samba/smb.conf
在這裡插入圖片描述
格式:
黑名單:hosts deny = IP
白名單:hosts allow = IP
我們用客戶端server1來測試一下,將客戶端server1新增進黑名單
在這裡插入圖片描述
編輯完成後重啟samba服務
二:在客戶端server1中:
smbclient //172.25.66.12/student -U student
在這裡插入圖片描述
測試完成後將客戶端server1從伺服器server2的samba黑名單移除然後重啟服務

系統目錄的共享與臨時目錄的共享

臨時目錄

一:在伺服器server2中:
1:建立一個目錄
mkdir /westos
2:vim /etc/samba/smb.conf ###寫在最後

 [DIR]
 comment = westos dir
 path = /westos

在這裡插入圖片描述
3:semanager fcontext -a -t samba_share_t ‘/westos(/.*)?’
restorecon -FvvR /westos/ ###同步安全上下文
systemctl restart smb
在這裡插入圖片描述
4:在/westos裡面建立一些檔案
在這裡插入圖片描述
二:在客戶端server1中:
進入/westos目錄:
smbclient //172.25.66.12/DIR -U student
ls 可以進入/westos目錄
在這裡插入圖片描述

系統目錄

舉例:/mnt目錄
一:在伺服器server2中:
1:vim /etc/samba/smb.conf

[mnt]
comment = mnt dir
path = /mnt

在這裡插入圖片描述
2:touch /mnt/file{1,3,5}
3:修改布林值
setsebool -P samba_export_all_ro on
systemctl restart smb
在這裡插入圖片描述
二:在客戶端server1中:
進入/mnt目錄:
smbclient //172.25.66.12/mnt -U student
ls 可以進入
在這裡插入圖片描述

samba多使用者認證

一:在客戶端server1中:
1:yum install cifs-utlis -y
2:vim /root/smbpass
username=student
password=redhat
在這裡插入圖片描述
3:mount -o credentials=/root/smbpass,sec=ntlmssp,multiuser //172.25.66.12/DIR /mnt
4:cd /mnt
5:ls
在這裡插入圖片描述
6:重新建立一個使用者,用此使用者進入/mnt目錄,ls
在這裡插入圖片描述
由於新建立的test使用者並沒有經過認證,所以不能讀取掛載的/mnt目錄的內容
7:對test使用者進行認證
在test使用者中
cifscreds add -u westos 172.25.66.12
在這裡插入圖片描述

匿名使用者檢視共享

一:在伺服器server2中:
vim /etc/samba/smb.conf

第325行: guest ok = yes           允許guest使用者訪問
第125行: map to guest = bad user  guest使用者的對映是非系統使用者


在這裡插入圖片描述
重啟smb服務
二:在客戶端server1中:
smbclient //172.25.66.12/DIR
ls
在這裡插入圖片描述
在客戶端匿名掛載
mount //172.25.66.12/DIR /mnt -o username=guest,password=""
在這裡插入圖片描述