首先恢复虚拟机1与虚拟机2快照,重新准备环境:
虚拟机1-单网卡-仅主机模式-192.168.100.10
虚拟机2-单网卡-仅主机模式-192.168.100.20
客户端可由物理机充当(win7或者win10)
网络配置可以根据自己的机器更改,不用一样一样的
保证网络连通(两个虚拟机可互通,物理机可ping通两台虚拟机),本地yum源配好!!
任务一、匿名共享
Samba服务器中共享/home/public 目录,定义共享名为public,并添加适当的备注信息,共享文件允许浏览、允许读写、允许匿名访问。
以下步骤仅在虚拟机1中操作即可!!
【0】关闭防火墙与SELinux
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
【0】安装samba
[root@localhost ~]# yum install samba -y
[root@localhost ~]# systemctl start smb && systemctl enable smb
Created symlink from /etc/systemd/system/multi-user.target.wants/smb.service to /usr/lib/systemd/system/smb.service.
【1】备份默认配置文件
Samba的默认配置文件是/etc/samba/smb.conf ,我们可以通过修改配置文件实现案例的要求。
为了避免我们的修改造成samba崩溃无法恢复的后果,建议先备份一下默认配置文件
[root@localhost ~]# cp /etc/samba/smb.conf /etc/samba/smb.conf.bac
【2】准备服务器待共享目录
[root@localhost ~]# mkdir -p /home/public
[root@localhost ~]# echo "test file" >> /home/public/test.txt
[root@localhost ~]# chmod -R 777 /home/public //赋予其他用户读写权限
【3】修改配置文件
[root@localhost ~]# vi /etc/samba/smb.conf
首先在[global]段落下:
修改workgroup = SAMBA字段为workgroup = WORKGROUP
添加一行 map to guest = bad user
然后在文件末尾添加如下内容:
[public] //设置共享名
comment = share files //设置共享资源描述
path = /home/public //设置共享目录
browseable = yes //设置可浏览
writable = yes //设置可读写
public = yes //设置允许匿名访问
【4】重启Samba服务
[root@localhost ~]# systemctl restart smb
修改配置文件后,重启服务使其生效。
【5】Windows系统匿名访问共享文件
我们假设Samba服务器的IP地址为192.168.100.10,那如果我们在一台与Samba服务器相同网段的Windows机器上,是能够匿名访问到共享目录的。
打开“此电脑”,在顶部路径栏输入 “\192.168.100.10” 并回车,可以看到共享的目录public。
在Windows的public文件夹中,我们可以修改里面的内容,也可以创建以及删除文件,并且在Linux系统中可以实时更新,保持同步。
任务二、user实例
公司有多个部门,因工作需要,就必须分门别类地建立相应部门的目录。要求将销售部的资料存放在Samba服务器的/companydata/sales/目录下集中管理,以便销售人员浏览,并且该目录只允许销售部员工访问。
需求分析:
在/companydata/sales/目录中存放有销售部的重要数据,为了保证其他部门无法查看其内容,我们需要将全局配置中security设置为user安全级别。这样就启用了Samba服务器的身份验证机制。然后在共享目录/companydata/sales下设置valid users字段,配置只允许销售部员工能够访问这个共享目录。
0、确保已经关闭防火墙、SELinux,确保已经安装samba服务
1、创建共享目录
[root@localhost ~]# touch /companydata/sales/test_share.tar
2、创建相关用户组与用户
[root@localhost ~]# groupadd sales
[root@localhost ~]# useradd -g sales sale1
[root@localhost ~]# useradd -g sales sale2
[root@localhost ~]# useradd test_user1
[root@localhost ~]# passwd sale1
[root@localhost ~]# passwd sale2
[root@localhost ~]# passwd test_user1
3、为销售部成员添加相关samba密码
[root@localhost ~]# smbpasswd -a sale1
[root@localhost ~]# smbpasswd -a sale2
4、修改配置文件
先恢复默认的配置文件
[root@localhost ~]# cp /etc/samba/smb.conf.bac /etc/samba/smb.conf
cp:是否覆盖"/etc/samba/smb.conf"? yes
然后vim打开后修改:
[root@localhost ~]# vim /etc/samba/smb.conf
[global]段落参考如下修改:
[global]
workgroup = WORKGROUP
server string = File Server
security = user
再在最后添加如下:
[sales]
comment = sales
path = /companydata/sales
writable = yes
browseable = yes
valid users = @sales
5、修改文件权限
[root@localhost ~]# chmod -R 777 /companydata/sales
[root@localhost ~]# chown -R :sales /companydata/sales
6、重启samba服务
[root@localhost ~]# systemctl restart smb
7、windows客户端验证
先在windows上,通过文件管理器打开\192.168.100.10,输入sale1或者sale2密码(注意是samba密码)均能登录并看到共享目录sales,但是test_user1用户不能成功登录。(windows登录后会自动纪录登录信息,下次自动登录,若想清除登录信息可打开cmd窗口,执行 net use * /del /y,关闭文件管理器后重新打开即可)
8、Linux客户端验证
Linux客户端也可以进行samba共享文件的访问,需要安装samba客户端,首先确保虚拟机2关闭防火墙与SELinux,并配置好本地yum源,然后执行如下:
安装samba客户端相关软件包:
[root@localhost ~]# yum install samba-client cifs-utils -y
登录验证:
[root@localhost ~]# smbclient -L 192.168.100.10 -U sale1%123456
Domain=[LOCALHOST] OS=[Windows 6.1] Server=[Samba 4.6.2]
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
sales Disk sales
IPC$ IPC IPC Service (File Server)
sale1 Disk Home Directories
Domain=[LOCALHOST] OS=[Windows 6.1] Server=[Samba 4.6.2]
Server Comment
--------- -------
Workgroup Master
--------- -------
[root@localhost ~]# smbclient -L 192.168.100.10 -U sale2%123456
Domain=[LOCALHOST] OS=[Windows 6.1] Server=[Samba 4.6.2]
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
sales Disk sales
IPC$ IPC IPC Service (File Server)
sale2 Disk Home Directories
Domain=[LOCALHOST] OS=[Windows 6.1] Server=[Samba 4.6.2]
Server Comment
--------- -------
Workgroup Master
--------- -------
[root@localhost ~]# smbclient -L 192.168.100.10 -U test_user1%123456
session setup failed: NT_STATUS_LOGON_FAILURE
如果想浏览共享目录,可以如下:
[root@localhost ~]# smbclient -L 192.168.100.10 -U test_user1%123456
session setup failed: NT_STATUS_LOGON_FAILURE
[root@localhost ~]# smbclient //192.168.100.10/sales -U sale1%123456
Domain=[LOCALHOST] OS=[Windows 6.1] Server=[Samba 4.6.2]
smb: \> ls
. D 0 Tue Aug 23 11:19:01 2022
.. D 0 Tue Aug 23 11:17:37 2022
test_share.tar A 0 Tue Aug 23 11:19:01 2022
10190100 blocks of size 1024. 9568084 blocks available
smb: \> exit
[root@localhost ~]#
任务三、 综合案例实战
Samba服务器目录
公共目录/share,销售部/sales,技术部/tech。
企业员工情况
主管:总经理 master
销售部:销售部经理 mike,员工 sky
技术部:技术部经理 tom,员工 sunny
公司使用Samba搭建文件服务器,需要:
建立公共共享目录,允许所有人访问,权限为只读。
为销售部和技术部分别建立单独的目录,只允许总经理和对应部门员工访问,并且公司员工无法在网络邻居查看到非本部门的共享目录。
分析:
对于建立公共的共享目录,使用public字段很容易实现匿名访问。但是,注意后面公司的需求,只允许本部门访问自己的目录,其他部门的目录不可见!这就需要设置目录共享字段“browseable=no”,以实现隐藏功能,但是这样设置,所有用户都无法查看该共享。因为对同一共享目录,有多种需求,一个配置文件无法完成这项工作,这时需要考虑建立独立配置文件,以满足不同员工访问需要。但是为每个用户建立一个配置文件,显然操作太繁琐了。我们可以为每个部门建立一个组,并为每个组建立配置文件,实现隔离用户的目标。
步骤:
为了避免虚拟机1中过多操作的干扰,我们在虚拟机2中进行相关操作!!!
0、确保已经关闭防火墙、SELinux,确保已经安装samba服务
1、创建相关目录并设置权限
[root@localhost ~]# mkdir /share
[root@localhost ~]# mkdir /sales
[root@localhost ~]# mkdir /tech
[root@localhost ~]# chmod -R 777 /share
[root@localhost ~]# chmod -R 777 /sales
[root@localhost ~]# chmod -R 777 /tech
2、创建相关用户组及用户
[root@localhost ~]# groupadd sales
[root@localhost ~]# groupadd tech
[root@localhost ~]# useradd -g sales mike
[root@localhost ~]# useradd -g sales sky
[root@localhost ~]# useradd -g tech tom
[root@localhost ~]# useradd -g tech sunny
[root@localhost ~]# useradd master
[root@localhost ~]# passwd master
[root@localhost ~]# passwd mike
[root@localhost ~]# passwd sky
[root@localhost ~]# passwd tom
[root@localhost ~]# passwd sunny
3、创建相关用户samba密码
[root@localhost ~]# smbpasswd -a master
[root@localhost ~]# smbpasswd -a mike
[root@localhost ~]# smbpasswd -a sky
[root@localhost ~]# smbpasswd -a tom
[root@localhost ~]# smbpasswd -a sunny
4、建立独立配置文件
[root@localhost ~]# cp /etc/samba/smb.conf /etc/samba/master.smb.cnf
[root@localhost ~]# cp /etc/samba/smb.conf /etc/samba/sales.smb.conf
[root@localhost ~]# cp /etc/samba/smb.conf /etc/samba/tech.smb.conf
5、修改主配置文件
[root@localhost ~]# vim /etc/samba/smb.conf
在[global]段落下添加如下两行:
include = /etc/samba/%U.smb.conf
include = /etc/samba/%G.smb.conf
6、编辑master配置文件
[root@localhost ~]# vim /etc/samba/master.smb.conf
然后在结尾添加如下三个段落:
[public]
comment = public
path = /share
public = yes
[sales]
comment = sales
path = /sales
writable = yes
valid users = master
[tech]
comment = tech
path = /tech
writable = yes
valid users = master
7、配置sales组配置文件
root@localhost ~]# vim /etc/samba/sales.smb.conf
然后在结尾添加如下两个段落:
[public]
comment = public
path = /share
public = yes
[sales]
comment = sales
path = /sales
writable = yes
valid users = @sales, master
8、配置tech组配置文件
root@localhost ~]# vim /etc/samba/tech.smb.conf
然后在结尾添加如下两个段落:
[public]
comment = public
path = /share
public = yes
[tech]
comment = tech
path = /tech
writable = yes
valid users = @tech, master
9、重启samba服务
[root@localhost ~]# systemctl restart smb
10、验证
在windows上分别通过master、mike、sky、tom、sunny登录验证。
master可以看到public、tech、sales目录
mike、sky可以看到public、sales目录
tom、sunny可以看到public、tech目录