SAMBA文件共享介绍及实战搭建

  • Samba 介绍
  • 任务需求
  • 服务搭建
  • 安装软件
  • 了解配置文件
  • 创建用户、相应目录及权限
  • 修改配置
  • 添加 Samba数据库信息
  • 启动及测试验证

##一、samba介绍

  • SMB(Server Message Block)协议实现文件共享,也称为CIFS(Common Internet File System )

  • 是Windows和类Unix系统之间共享文件的一种协议

  • 客户端主要是Windows;支持多节点同时挂载以及并发写入

  • 主要用于windows和Linux下的文件共享、打印共享

  • 实现匿名与本地用户文件共享

Samba服务的主要进程:

  • smbd进程 控制发布共享目录与权限、负责文件传输 TCP 139 445
  • nmbd进程 用于名称解析netbios UDP 137 138;基于NETBIOS协议获得计算机名称——>解析为相应IP地址,实现信息通讯

NetBIOS是Network Basic Input/Output System的简称,一般指用于局域网通信的一套API

二、任务需求

某公司,有三个部门cw,rs,sc和一个公共区pub,每个部门的资料根据如下需求进行共享:
1. 财务部门,资料目录为/smb/cw ,要求:
	cw01财务总监有可读可写权限,财务部门员工可读,boss01对其有管理权限。
2. 市场部门,资料目录为/smb/sc,要求:
	市场部门员工可读可写,公司员工可以查询资料,boss02对其有管理权限。
3. 人事部门,资料目录为/smb/rs ,要求:
	rs01HR总监可读写,HR部门员工可以对财务部查询,vip用户可以查询
4、休息区,公共目录为/smb/pub,要求只能自己管理自己的文件,不能删除别人的文件

##三、samba服务器搭建

1. 安装 Samba 软件

[root@smb-server ~]# yum install samba
......
已安装:
samba.x86_64 0:4.9.1-6.el7

作为依赖被安装:
cups-libs.x86_64 1:1.6.3-40.el7              
libldb.x86_64 0:1.4.2-1.el7                   
libtalloc.x86_64 0:2.1.14-1.el7
libtdb.x86_64 0:1.3.16-1.el7                 
libtevent.x86_64 0:0.9.37-1.el7               
libwbclient.x86_64 0:4.9.1-6.el7
pytalloc.x86_64 0:2.1.14-1.el7               
samba-client-libs.x86_64 0:4.9.1-6.el7        
samba-common.noarch 0:4.9.1-6.el7
samba-common-libs.x86_64 0:4.9.1-6.el7       
samba-common-tools.x86_64 0:4.9.1-6.el7       
samba-libs.x86_64 0:4.9.1-6.el7


2. 了解配置文件

[root@samba ~]# vim /etc/samba/smb.conf
[global]  														全局选项
	workgroup = SAMBA                 				定义samba服务器所在的工作组
	security = user          认证模式:share匿名|user用户密码|server外部服务器用户密码
	passdb backend = tdbsam         						密码格式
	printing = cups										打印方式为打印机
	printcap name = cups								打印机名字
	load printers = yes									是否加载打印机
	log file = /var/log/samba/log.%m            		   日志文件
	max log size = 50                   				  日志的最大大小KB  
	
	cups options = raw          							打印机选项
[homes]                 									局部选项(共享名称)
	comment = Home Directories      						描述
	valid users = %S, %D%w%S								允许访问用户
	browseable = no      									隐藏共享名称
	writable = yes      										可读可写
[printers]      												共享名称
	comment = All Printers       							描述
	path = /var/spool/samba 								本地的共享目录
	browseable = no  											隐藏
	guest ok = no ——>   public = no  					需要帐号和密码访问
	writable = no  ——>  read only =yes 					不可写 
	printable = yes      									打印选项
	

3. 创建相关用户与目录及目录权限

创建相应的目录及用户组
[root@smb-server ~]# mkdir /samba/{cw,rs,sc,pub} -p
[root@smb-server ~]# groupadd group
[root@smb-server ~]# groupadd cw
[root@smb-server ~]# groupadd rs
[root@smb-server ~]# groupadd sc
[root@smb-server ~]# useradd cw01 -g cw -G group
[root@smb-server ~]# useradd cw02 -g cw -G group
[root@smb-server ~]# useradd rs01 -g rs -G group
[root@smb-server ~]# useradd rs02 -g rs -G group
[root@smb-server ~]# useradd sc01 -g sc -G group
[root@smb-server ~]# useradd sc02 -g sc -G group
[root@smb-server ~]# useradd boss01 -g group
[root@smb-server ~]# useradd boss02 -g group
[root@smb-server ~]# useradd vip
权限最小化:
[root@smb-server ~]# chmod 700 -R /smb
[root@smb-server ~]# chgrp itcast /smb
[root@smb-server ~]# chgrp cw /smb/cw
[root@smb-server ~]# chgrp rs /smb/rs
[root@smb-server ~]# chgrp sc /smb/sc
[root@smb-server ~]# chgrp itcast /smb/pub
特定权限 ACL 策略:
[root@smb-server ~]# setfacl -m g:itcast:rx /smb
[root@smb-server ~]# setfacl -m g:cw:rwx /smb/cw
[root@smb-server ~]# setfacl -m g:rs:rwx /smb/rs
[root@smb-server ~]# setfacl -m g:sc:rwx /smb/sc
[root@smb-server ~]# chmod 1777 /smb/pub/
[root@smb-server ~]# setfacl -m u:vip:rx /smb/
[root@smb-server ~]# setfacl -m u:vip:rx /smb/rs/

4. 修改配置:

搭建samba服务,修改配置文件,发布共享目录
[root@smb-server ~]# tail -19 /etc/samba/smb.conf 
[cw]
	path=/smb/cw
	valid users = boss01,@cw,@rs
	write list = cw01,boss01

[rs]
	path=/smb/rs
	valid users = vip,@rs
	write list = rs01

[sc]
	path=/smb/sc
	valid users = @group
	write list = @sc,boss02

[pub]
	path=/smb/pub
	valid users = @group,vip	          //是否让vip查看公共资源,根据需求
	writable = yes



没有mount.cifs命令,请安装cifs-utils-4.8.1-19.el6.x86_64

5. 添加 Samba 数据库用户信息

将用户加入到smb数据库里,设密码
[root@smb-server ~]# smbpasswd -a cw01
New SMB password:
Retype new SMB password:
Added user cw01.
[root@smb-server ~]# smbpasswd -a cw02
New SMB password:
Retype new SMB password:
Added user cw02.
[root@smb-server ~]# smbpasswd -a rs01
New SMB password:
Retype new SMB password:
Added user rs01.
[root@smb-server ~]# smbpasswd -a rs02
New SMB password:
Retype new SMB password:
Added user rs02.
[root@smb-server ~]# smbpasswd -a sc01
New SMB password:
Retype new SMB password:
Added user sc01.
[root@smb-server ~]# smbpasswd -a sc02
New SMB password:
Retype new SMB password:
Added user sc02.
[root@smb-server ~]# smbpasswd -a boss01
New SMB password:
Retype new SMB password:
Added user boss01.
[root@smb-server ~]# smbpasswd -a boss02
New SMB password:
Retype new SMB password:
Added user boss02.
[root@smb-server ~]# smbpasswd -a vip
New SMB password:
Retype new SMB password:
Added user vip.

6. 启动服务

[root@smb-server ~]# service nmb start
Starting NMB services:                                     [  OK  ]
[root@smb-server ~]# service smb start
Starting SMB services:                                     [  OK  ]
[root@smb-server ~]# 

7. 访问 Samba 共享

windows端:在计算机路径栏访问: ip:\smb\{rs,cw,pub,sc}

linux端:
	查看smb服务端共享的模块或者标签:
	[root@client ~]# smbclient -L 10.1.1.1 -U user01
	Enter user01's password: 
	-L: 列出
	-U:指定用户查看
挂载使用:
[root@client ~]# mount.cifs -o user=user01,pass=123 //10.1.1.1/samba/share /u01

8. 测试验证

[root@client ~]# smbclient //10.1.1.2/cw -U cw01
Enter cw01's password: 
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.9-164.el6]
smb: \> ls
  .                                   D        0  Sat Apr 21 10:12:11 2018
  ..                                  D        0  Sat Apr 21 10:12:11 2018

		35418 blocks of size 524288. 25177 blocks available
smb: \> mkdir aaa
smb:\>  创建成功

//boss01可以读写
[root@client ~]# smbclient //10.1.1.2/cw -U boss01
Enter boss01's password: 
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.9-164.el6]
smb: \> mkdir bbb
smb: \> 

//cw02只能读不能写
[root@client ~]# smbclient //10.1.1.2/cw -U cw02
Enter cw02's password: 
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.9-164.el6]
smb: \> ls
  .                                   D        0  Sat Apr 21 10:48:15 2018
  ..                                  D        0  Sat Apr 21 10:12:11 2018
  aaa                                 D        0  Sat Apr 21 10:45:23 2018
  bbb                                 D        0  Sat Apr 21 10:48:15 2018

		35418 blocks of size 524288. 25177 blocks available
smb: \> mkdir ccc
NT_STATUS_MEDIA_WRITE_PROTECTED making remote directory \ccc
smb: \> 

//人事部门可以查看财务部门的资料,但是不能写
[root@client ~]# smbclient //10.1.1.2/cw -U rs01
Enter rs01's password: 
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.9-164.el6]
smb: \> ls
  .                                   D        0  Sat Apr 21 10:48:15 2018
  ..                                  D        0  Sat Apr 21 10:12:11 2018
  aaa                                 D        0  Sat Apr 21 10:45:23 2018
  bbb                                 D        0  Sat Apr 21 10:48:15 2018

		35418 blocks of size 524288. 25177 blocks available
smb: \> mkdir ccc
NT_STATUS_MEDIA_WRITE_PROTECTED making remote directory \ccc
smb: \> 

//cw01没有权限访问rs部门的资料,直接拒绝
[root@client ~]# smbclient //10.1.1.2/rs -U cw01
Enter cw01's password: 
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.9-164.el6]
tree connect failed: NT_STATUS_ACCESS_DENIED

你可能感兴趣的:(运维,Linux)