Linux samba服务配置

首先恢复虚拟机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目录

猜你喜欢

转载自blog.csdn.net/qq_44652591/article/details/128263170
今日推荐