一、Samba服務介紹
Samba是種自由軟件,用來讓UNIX系列的操作系統與微軟Windows操作系統的SMB/CIFS(Server Message Block/Common Internet File System)網絡協定做連結。Samba服務功能強大,這與其通信基於SMB/CIFS協議有關。SMB不僅提供目錄和打印機共享,還支持認證、權限設置。在早期,SMB運行於NBT協議(NetBIOS over TCP/IP)上,使用UDP協議的137、138及TCP協議的139端口;後期SMB經過開發,可以直接運行於TCP/IP協議上,沒有額外的NBT層,使用TCP協議的445端口。、
二、Samba配置
1、Samba服務安裝
yum -y install samba sambaclient(客戶端)
2、修改配置文件
vim /etc/samba/smb.conf
3、防火牆配置
firewall-cmd --permanent --add-service=samba(也可直接將防火牆清空iptables -F 或者關閉防火牆服務)
4、客戶端測試
smbclient -L //172.18.251.127(匿名登陸列出)
在這裏我們看不到我們共享的qianyaota,因爲在samba服務器配置文件裏面我們把browseable 設置爲了no,我們修改爲yes,從新用客戶端登陸測試(修改配置文件後需要重新啓動服務才能生效)
systemctl restart smb
在這裏我們通過用戶登陸來測試不同的權限
首先添加samba用戶,前提是添加的用戶是系統中本來就存在的用戶
smbpasswd -a baisuzhen smbpasswd -a fahai smbpasswd -a xuxian smbpasswd -a xushilin
用戶登陸測試
因爲考慮到selinux的問題,所以要爲對應的共享目錄設置期望值
semanage fcontext -a -t "samba_share_t" '/smb/fenxiang(/.*)?' restorecon -Rv /smb/fenxiang/
還又另一種方法也可以
chcon -t samba_share_t /smb/fenxiang
不僅僅需要服務本身允許進行寫入操作,還需要對目錄賦予用戶權限
setfacl -m u:baisuzhen:rwx /smb/fenxiang/ setfacl -m u:xuxian:rwx /smb/fenxiang/ setfacl -m u:xushilin:rwx /smb/fenxiang/
前期工作已經做好,就可以放心大膽的測試了
因爲在samba服務器配置文件中雖然寫了默認不能寫writeable=no,但我們又添加了write list=baisuzhen ,...,賦予了其寫的權限,所以成功上傳(samba用戶上傳文件時只能上傳自己家目錄的文件,不能上傳其他目錄文件)
上圖所示,這裏的用戶fahai就不能上傳文件,不僅僅時目錄權限本身,連samba服務就沒有允許
三、samba服務多用戶掛載
這裏需要安裝一個cifs-utils的包
yum -y install cifs-utils (一般爲默認安裝)
我們直接寫入/etc/fstab文件中實現開機自動掛載
vim /etc/fstab
//172.18.251.127/qianxiaota /ceshi cifs defaults,multiuser,username=fahai,password=centos,sec=ntlmssp 0 0
multiuser(多用戶模式)
username=fahaim,password=centos (選擇權限小的用戶,這樣可以實現自動切換)
當然這樣有點不×××全,也可以寫入一個文件裏,比如寫到/etc/user.txt
/etc/fstab 文件裏就可以這樣編寫
//172.18.251.127/qianxiaota /ceshi cifs defaults,multiuser, credentials=/etc/user.txt ,sec=ntlmssp 0 0
mkdir /ceshi
mount -a
通過df命令進行查看,成功掛載
測試通過其他用戶直接進入掛載目錄中權限的不同
cifscreds add 172.18.251.127
如上如所示,該用戶無法創建刪除
如上圖所示,該用戶可以創建文件,實現多用戶掛載功能