cifs檔案系統{samba檔案共享服務}

科技小能手發表於2017-11-12

一.samba介紹

1.提供cifs協議實現共享檔案,主要用於windows與linux的網路檔案系統

 

 

 

 

 

 

 

 

 

 

二.搭建環境安裝服務

1.配置yum倉庫

2.關閉防火牆

systemctl stop firewalld

3.安裝軟體,設定開機自動啟動

yum install samba samba-common samba-client -y     

systemctl start smb   開啟samba服務

systemctl enable smb   設定開機自動啟動

 

(samba-common  samba的支援檔案);(samba-client  客戶端應用程式);(samba  伺服器的應用程式)

 

三.新增smb使用者

1.smb使用者必須是本地使用者

smbpasswd -a student     (新增student使用者)

New SMB password: 輸入smb當前使用者密碼

Retype new SMB password: 確認密碼

 

pdbedit -L 檢視smb使用者資訊

pdbedit -x smb使用者          刪除smb使用者

 

2.檢視selinux的狀態,如果是enforencing,修改samba服務的sebool值,並且開啟家目錄的訪問許可權。

getenforce      檢視selinux的狀態

setsebool -P enable_samba_home_dirs  on(selinux是enforce的狀態下)

 

3.以student使用者的身份(客戶端)去訪問samba服務共享出來的student使用者的家目錄。

smbclient //172.25.254.124/student -U student    訪問student使用者的家目錄

Enter student`s password:         輸入該使用者的密碼

 

四.設定共享目錄

1.基本配置

編輯配置檔案 vim /etc/samba/smb.conf

workgroup mkdir= westos   工作組的名稱

 

[DATA]  共享目錄的名稱

comment = local directory    對共享目錄的描述

path= /westos    共享目錄的路徑  

 

檢視建立的共享目錄 smbclient -L //172.25.254.124 -U student  

 

2.當共享目錄為使用者自己建立的目錄時,需要修改新建目錄的安全上下文(否則無法在共享目錄中看到檔案)

mkdir /westos    創立共享目錄

touch /westos/linuxfile{1..3}   建立檔案

ls -lZd /westos/     檢視目錄的安全上下文

semanage fcontext -a -t samba_share_t `目錄名稱(/.*)?`   (/.*)?表示匹配目錄及目錄以下所有檔案

restorecon -RvvF 目錄名稱       重新整理目錄裡內容的安全上下文

 

3.當共享目錄為系統級目錄,為了不影響修改安全上下文對別的服務的影響,修改selinux中的sebool值(否則無法看到檔案)

編輯配置檔案 vim /etc/samba/smb.conf

 

[CONFIG]  共享目錄的名稱

comment = config directory    對共享目錄的描述

path= /mnt    共享目錄的路徑  

 

以student身份檢視共享的系統目錄 smbclient //172.25.254.124/CONFIG -U student

ls   無法檢視到檔案

 

getsebool  -a | grep samba       過濾出samba服務的sebool值

setsebool  -P samba_export_all_ro on#只讀共享

setsebool  -P samba_export_all_rw on#讀寫共享

 

4.再次以student使用者的身份去訪問samba服務共享的檔案

smbclient //172.25.254.124/CONFIG -U student

ls   可以看到目錄下檔案

 

五.samba的配置引數

1.匿名使用者訪問

編輯配置檔案 vim /etc/samba/smb.conf

guest ok = yes

map to guest = bad user

 

2.訪問控制

hosts deny = ip  只拒絕該主機訪問

hosts allow = ip 只允許該主機訪問

valid users = 使用者 當前共享有效的使用者

valid users = @student 當前共享的有效使用者為student組

valid users = +student 當前共享的有效使用者為student組

 

3.讀寫控制

服務端:

所有使用者均可寫

chmod o+w /mnt    給其他使用者/mnt目錄寫許可權

setsebool -P samba_export_all_rw on     改變selinux中sebool值,開啟讀寫許可權

vim /etc/samba/smb.connf

writable = yes                          開啟配置檔案中的寫許可權

客戶端:

mount -o username=student,password=redhat //172.25.254.124/CONFIG /mnt/  以student身份將172.25.254.124共享的CONFIG掛載到/mnt上

測試讀寫許可權

 

4.設定指定使用者可寫

編輯配置檔案  vim /etc/samba/smb.conf

write list = student   可寫使用者

用student使用者掛載目錄,可以進行寫操作;用lu使用者掛載目錄,沒有許可權進行寫操作

 

weite list = +student  可寫使用者組

write list = @student  可寫使用者組(兩種方式都表示組使用者可寫)

 

六.smb多使用者掛載

1.在客戶端安裝cifs-utils軟體

2.建立訪問時所需要的使用者名稱和密碼

vim /root/westos  (建立身份認證檔案)

username=student      

password=redhat     (格式)

 

chmod 600 /root/westos 只有root擁有讀寫許可權

 

3.多使用者掛載

mount -o credentials=/root/westos,multiuser,sec=ntlmssp //172.25.254.124/CONFIG /mnt/

credentials=/root/westos   指定掛載時用到的使用者身份認證檔案

multiuser     支援多使用者認證

sec=ntlmssp   認證方式為smb認證

 

4.測試

su – kiosk

ls /mnt

ls: cannot access /mnt: Permission denied#因為沒有做smb的認證所以無法訪問smb共享

(沒有作smb的認證所以無法訪問smb共享)

cifscreds add -u student 172.25.254.124     為使用者tom認證

Password:    smb使用者student的密碼

ls /mnt  可以看到/mnt目錄下的檔案

 

cifscreds clear -u student 172.25.254.124 清除認證後,使用者lu無法訪問

cifscreds add -u student 172.25.254.124 student認證後tom可以訪問


本文轉自 lulu2017 51CTO部落格,原文連結:http://blog.51cto.com/13132425/1958182



相關文章