samba服務linux
http://hongge.blog.51cto.com/ios
RHEL7配置samba:開機自動掛載以及多用戶掛載vim
安裝samba(centos 7/redhat 7提供的samba版本是samba 4)windows
開機啓動centos
啓動服務安全
查看監聽端口(使用netstat或ss命令查看鏈接狀態)服務器
防火牆放行網絡
而後咱們看看配置文件 smb.confide
注意配置任何服務的時候,涉及到權限訪問的配置都有一個基本的順序:工具
1.配置文件,各類conf文件裏面的設置
2.文件權限的訪問,用戶是否有對應的rwx權限
3.SELinux的上下文和布爾值是否打開了
SMB也不例外。
配置文件一開始就提醒SELinux的配置。
標號1:告訴咱們能夠執行testparm檢測samba配置文件的語法正確性
標號2:samba_enable_home_dirs布爾值容許訪問用戶的家目錄
標號3:samba_share_t須要把這個上下文分配給對應的共享文件
global的配置部分主要設置工做組名、描述信息、netbios名、監聽接口或IP、容許域名或網絡範圍等等
注:hosts allow表示容許的IP或域名,書寫格式能夠用如下方式表示
1. 主機IP:多個IP地址用空格分隔,如:172.25.0.1172.25.0.2
2. 網段:能夠用掩碼長度或子網掩碼錶示,如:172.25.0.0/24或172.25.0.0/255.255.255.0
3. IP子網前綴:172.25.0.或172.25.表示以172.25.0.或172.25.開始的地址
4. 主機名或主機後綴名:如desktop.example.com或.example.com
5. IPV6地址:2001:db8:0:1::/64
日誌存放點,本地驗證的方式使用user(用戶名方式驗證)
samba 4 下參數security的值再也不容許是share和server,建議使用user
samba 4 下若是但願有匿名訪問共享,可將 map to guest = Bad User 打開
在[global]節中加入map to guest = Bad User,這個配置的意思是將全部samba系統主機所不能正確識別的用戶都映射成guest用戶,這樣其餘主機訪問samba共享目錄時就再也不須要用戶名和密碼了,在定義共享部分添加guest ok = yes。
最後是共享文件
例1:接下咱們來建立一個目錄(如:/common),經過samba輸出共享
經過 SMB 共享/common 目錄,samba服務器必須是 STAFF 工做組的一個成員,共享名必須爲 common,只有 group3.example.com 域內的客戶端能夠訪問 common 共享(group3.example.com中的系統都在子網172.24.3.0/24中),一樣在這個子網中的系統都在,common 必須是能夠瀏覽的,用戶 harry 必須可以讀取共享中的內容,若是須要的話,驗證的密碼是 migwhisk
#yum install –y samba samba-client samba-common //該包裏有 smbpasswd 命令
# mkdir /common
# chcon -R -t samba_share_t /common
# setsebool -P samba_export_all_rwon
# vim /etc/samba/smb.conf
workgroup = STAFF
[common]
path = /common
browseable = yes
# useradd harry
# smbpasswd -a harry ->密碼設置爲 migwhisk
注:與samba配套使用的smbpasswd在samba-client中,建議安裝時一併安裝samba-client
# systemctl start smb
# systemctl enable smb
#firewall-cmd --zone=public --permanent–add-rich-rule=’rule family=」ipv4」 source address=172.24.3.0/24 service name=samba accept’
#firewall-cmd –reload
或者
在smb.conf配置文件的共享定義中使用hosts allow = 172.24.3.只容許group3.example.com 域內的客戶端訪問。
在客戶端上測試訪問samba共享
Windows客戶端
輸入」//samba服務器的IP」回車
輸入用戶名和密碼,回車
從linux客戶端測試訪問
注:掛載smb共享使用的是cifs文件系統
或使用mount.cifs掛載
注:mount.cifs命令由cifs-utils軟件提供
注:sec選項的做用是選擇安全模型
注:linux做爲客戶端掛載windows的共享(共享目錄是ntfs文件系統)也須要安裝cifs-utils包
能夠用man mount.cifs查看手刪頁
例2:配置多用戶SMB掛載
在system1共享經過SMB目錄/devops知足如下要求:
共享名爲devops
共享目錄devops只能被group3.example.com域中的客戶端使用
共享目錄devops必須能夠被瀏覽
用戶kenji必須能以讀的方式訪問此共享,該問密碼是atenorth
用戶chihiro必須能以讀寫的方式訪問此共享,訪問密碼是atenorth
此共享永久掛載在system2.group3.example.com上的/mnt/dev目錄,並使用用戶kenji做爲認證。任何用戶能夠經過用戶chihiro來臨時獲取寫的權限。
在 system1 (smb共享服務器)上建立目錄
# mkdir /devops
建立相關用戶
# useradd kenji
# useradd chihiro
設置/devops目錄的acl權限
# setfacl -m u:chihiro:rwx /devops
設置selinux
# chcon -R -t samba_share_t /devops
# setsebool -P samba_export_all_rw on
修改配置文件
# vim /etc/samba/smb.conf
[devops]
path = /devops
browseable = yes
write list = chihiro
添加samba用戶
# smbpasswd -a kenji
# smbpasswd -a chihiro
重啓服務
# systemctl restart smb nmb
system2 (smb客戶端)上的配置以下:
建立用於測試相關用戶
# useradd lisi
# useradd zhangsan
建立掛載點:
# mkdir /mnt/dev
建立密碼文件
# vim /root/multiuser.txt
username=kenji
password=atenorth
在 fstab 中寫入:
//system1.group3.example.com/devops /mnt/dev cifs
defaults,credentials=/root/multiuser.txt,multiuser,sec=ntlmssp 0 0
注:在客戶端掛載smb共享若使用credentials(指定驗證憑證)參數則要安裝cifs-utils軟件包。
或在 fstab 中寫入:
//system1.group3.example.com/devops /mnt/dev cifs
defaults,username=kenji,password=atenorth,multiuser,sec=ntlmssp 0 0
# mount –a
執行df –hT驗證掛載
#su – lisi
從上圖能夠看到客戶端用戶lisi沒有任何權限,lisi若要以只讀方式訪問共享目錄則執行下面的命令同步服務器kenji用戶身份
#cifscreds add system1 -u kenji
以下圖所示:
從上圖能夠看到客戶端用戶lisi能夠進行讀操做但仍然不能執行寫操做。
客戶端zhangsan用戶能夠對共享目錄執行寫操做又如何實現呢?
方法是執行下面的命令同步服務器chihiro用戶身份
#su – zhangsan
#cifscreds add system1 –u chihiro
注:cifscreds是管理認證憑據(用戶名和密碼),用於多用戶創建會話目的的工具
例3:需求描述
共享名路徑權限
sharedoc/smb/docs全部人員包括來賓都可以訪問
rddocs /smb/tech 僅容許特定組的用戶進行讀寫訪問
特定組的組名爲rd,目前的Alice、Jack、Tom三我的
配置samba服務器
建立共享目錄(假設共享/smb目錄下的文件)
# mkdir -p /smb/docs
# mkdir -p /smb/tech
編輯smb.conf文件
在全局部分添加map to guest項
在共享定義部分添加以下共享配置項
建立系統用戶和組帳戶
將用戶添加到rd組
建立samba用戶
修改目錄權限
重啓smb服務
在客戶端上測試訪問smb共享
以windows系統爲例,在客戶端上輸入:\\samba服務器ip
直接打開共享窗口,當訪問rrdocs共享目錄時,須要輸入用戶名和密碼