##一、samba介绍
SMB(Server Message Block)协议实现文件共享,也称为CIFS(Common Internet File System )
是Windows和类Unix系统之间共享文件的一种协议
客户端主要是Windows;支持多节点同时挂载以及并发写入
主要用于windows和Linux下的文件共享、打印共享
实现匿名与本地用户文件共享
Samba服务的主要进程:
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服务器搭建
[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
[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 打印选项
创建相应的目录及用户组
[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/
搭建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
将用户加入到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.
[root@smb-server ~]# service nmb start
Starting NMB services: [ OK ]
[root@smb-server ~]# service smb start
Starting SMB services: [ OK ]
[root@smb-server ~]#
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
[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