samba for centos7

samba服務

http://hongge.blog.51cto.com/

RHEL7配置samba:開機自動掛載以及多用戶掛載

安裝samba(centos 7/redhat 7提供的samba版本是samba 4)

clip_image002

開機啓動

clip_image004

啓動服務

clip_image005

查看監聽端口(使用netstat或ss命令查看連接狀態)

clip_image007

防火牆放行

clip_image008

然後我們看看配置文件 smb.conf

注意配置任何服務的時候,涉及到權限訪問的配置都有一個基本的順序:

1.配置文件,各種conf文件裏面的設置

2.文件權限的訪問,用戶是否有對應的rwx權限

3.SELinux的上下文和布爾值是否打開了

SMB也不例外。

配置文件一開始就提醒SELinux的配置。

clip_image010

標號1:告訴我們可以執行testparm檢測samba配置文件的語法正確性

標號2:samba_enable_home_dirs布爾值允許訪問用戶的家目錄

標號3:samba_share_t需要把這個上下文分配給對應的共享文件

global的配置部分主要設置工作組名、描述信息、netbios名、監聽接口或IP、允許域名或網絡範圍等等

clip_image012

注:hosts allow表示允許的IP或域名,書寫格式可以用以下方式表示

1. 主機IP:多個IP地址用空格分隔,如:172.25.0.1172.25.0.2

2. 網段:可以用掩碼長度或子網掩碼錶示,如:172.25.0.0/24172.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(用戶名方式驗證)

clip_image014

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。

最後是共享文件

clip_image016

例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”回車

clip_image017

輸入用戶名和密碼,回車

clip_image018

從linux客戶端測試訪問

clip_image020

clip_image022

注:掛載smb共享使用的是cifs文件系統

或使用mount.cifs掛載

clip_image024

注:mount.cifs命令由cifs-utils軟件提供

注:sec選項的作用是選擇安全模型

注:linux作爲客戶端掛載windows的共享(共享目錄是ntfs文件系統)也需要安裝cifs-utils包

可以用man mount.cifs查看手刪頁

clip_image026

例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驗證掛載

clip_image028

#su – lisi

clip_image029

從上圖可以看到客戶端用戶lisi沒有任何權限,lisi若要以只讀方式訪問共享目錄則執行下面的命令同步服務器kenji用戶身份

#cifscreds add system1 -u kenji

如下圖所示:

clip_image030

從上圖可以看到客戶端用戶lisi可以進行讀操作但仍然不能執行寫操作。

客戶端zhangsan用戶可以對共享目錄執行寫操作又如何實現呢?

方法是執行下面的命令同步服務器chihiro用戶身份

#su – zhangsan

#cifscreds add system1 –u chihiro

clip_image032

注: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項

clip_image033

在共享定義部分添加如下共享配置項

clip_image034

創建系統用戶和組賬戶

clip_image035

將用戶添加到rd組

clip_image036

創建samba用戶

clip_image037

修改目錄權限

clip_image038

重啓smb服務

clip_image039

在客戶端上測試訪問smb共享

以windows系統爲例,在客戶端上輸入:\\samba服務器ip

直接打開共享窗口,當訪問rrdocs共享目錄時,需要輸入用戶名和密碼

http://hongge.blog.51cto.com/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章