1. 程式人生 > >linux中如何使用smb檔案共享

linux中如何使用smb檔案共享

1.實驗環境

虛擬機器desktop                                                                            虛擬機器server

ip設定為172.25.254.155                                                             ip設定為172.25.254.156

主機名設定為client.nelws.com                                                    主機名設定為shareserver.nelws.com

兩個虛擬機器都需要配置好yum源

2.配置samba共享

1)shareserver

yum install samba samba-common  samba-client -y        ##安裝samba服務端需要的軟體
systemctl start smb                                    ##開啟samba服務
systemctl stop firewalld                               ##關閉防火牆
systemctl disable firewalld                            ##禁止防火牆開機啟動
systemctl enable  smb                                  ##samba服務開啟自啟

如果selinux為enforcing狀態則需要

setenforce 0

2)client

yum install samba-client                      ##安裝samba客戶端軟體

3.如何使用samba軟體

1)shareserver

samba共享需要使用主機上的真實主機,所以需要先進行一個使用者的建立

useradd lei                   ##新建一個使用者,用以smb登陸
smbpasswd -a lei              ##用本地使用者來配置samba共享使用者
smbpasswd -a student          ##做實驗所需

pdbedit -L                    ##檢視本地的samba使用者

 

pdbedit -x student            ##刪除student使用者的登陸權

如果shareserver的selinux狀態為enforcing,則家目錄會無法訪問,此時需要

setsebool -P samba_enable_home_dirs on            ##開啟家目錄的訪問

 2)client

smbclient -L //172.25.254.156 	       	       ##檢視匿名使用者共享目錄

smbclient -L //172.25.254.156 -U lei        ##檢視lei使用者共享目錄,lei使用者的目錄為lei的家目錄

smbclient    //172.25.254.156/lei -U lei         ##登陸lei使用者共享目錄

這樣訪問的方式不太方便,可以使用掛載的方式

mount -o username=lei,password=lei //172.25.254.156/lei /mnt/    ##掛載共享資料夾
df                                                               ##檢視掛載



4.修改smb配置檔案來實現自己想要的功能

編輯配置檔案

vim /etc/samba/smb.conf

1)如何修改域名

配置檔案第89行,如下圖

再次檢視

2)如何設定白名單

96行新增hosts allow = ip,ip段,如下圖

 測試,可以登陸

3)如何設定黑名單

97行新增hosts deny =ip,ip段,如下圖

測試,不可以登陸

4)如何使用自己的建立的目錄共享

在檔案最後新增

[xupt]                                                ##名字
comment = xupt dir share                              ##對這個目錄的描述
path = /xupt                                          ##絕對路徑

如下圖

測試,成功

如果此時伺服器的selinux為enforcing狀態,會登陸失敗,需要做一下操作

semanage fcontext -a -t samba_share_t '/xupt(/.*)?'   ##將/xupt的安全上下文改為samba_share_t
restorecon -RvvF /xupt/                               ##逐個重新整理/xupt的安全上下文

5)當分享系統目錄,而selinux為enforcing狀態時,此時必然不可以修改上下文,此時該怎麼呢?
例如mnt目錄,此時,就需要

setsebool samba_export_all_ro on        ##開啟全域性的對samba共享檔案的只讀許可權

再次嘗試就ok了。

7)自己建立的目錄的管理

此時許可權需要先加滿,來做測試

chmod 777 /xupt

(1)writable=yes,主要體現在刪除

測試,刪除成功

(2)write list = user/@user/+user ,表裡的使用者可寫/使用者組可寫

測試,發現write list中的lei使用者可以刪除,student不可以

(3) valid users = user/+user,表示使用者可登陸/使用者組可登陸

測試,發現lei使用者可以登陸,student不可以


(4)browseable = yes,是否可被發現

測試,發現不了了

(5)admin users = user ,uesr相對於共享目錄為root使用者


測試,在客戶端上傳檔案,!ls表示可以檢視客戶端當前所在資料夾的檔案

回到服務端檢視上傳的使用者,為root使用者,所以lei使用者在那個共享資料夾裡面的權力等於root使用者

(6)guest ok = yes ,匿名使用者可登陸
     map to guest =bad user                      ## 一般在第126行,把匿名使用者對映為guest,必須新增次項!!!

我們先來測試一下現在匿名使用者是否可以登陸,不可以

現在我們來新增上述配置

測試,ok了

但是這樣是非常不安全的,不建議這樣。