配置与管理Samba服务器(详细教程)

目录

一、基础理论

二、samba工作流程

三、项目实训

3.1目的

3.2准备工作

 3.2.1服务器安装samba服务软件包

 3.2.2客户端安装软件包

3.3配置Samba服务

 3.3.1开启Samba服务,并设置开启自启动

 3.3.2创建共享文件夹

 3.3.3创建群组

 3.3.4修改文件用户权限

 3.3.5修改配置文件

​ 3.3.6设置samba服务用户

 3.3.7让samba服务被安全上下文允许使用

3.4测试结果 

 Windows客户端(Win 10)

 Linux客户端

一、基础理论

samba最先在Linux和Windows两个平台之间架起了一座桥梁,正式由于Samba的出现,我们才可以在Linux系统和Windows系统之间互相通信,如复制文件,实现不同操作系统之间的资源共享等,可以将其架设成一个功能非常强大的文件服务器,也可以将其架设成打印服务器提供本地和远程联机打印,甚至可以使用Samba Server完全取代NT/2K/2K3中的域控制器,对域进行管理也非诚方便。

Samba服务功能强大,这与其通信基于SMB协议有关。SMB不仅提供目录和打印机共享,还支持认证,权限设置。在早期,SMB运行与NBT协议上,使用UDP的 137、138、端口,后期SMB经过开发,可以直接运行与TCP/IP上,没有额外的NBT层,使用TCP的445端口。

二、samba工作流程

  1. 协议协商。  客户端在访问Samba服务器时,发送negprot指令数据包,告知目标计算机其支持的SMB类型,Samba服务器根据客户端的情况,选择最优的SMB类型并做出回应
  2. 建立连接。  当SMB类型确认后,客户端会发送session setup 指令数据包,提交账号和密码,请求与Samba服务端建立连接,如果客户端通过身份验证,Samba服务器会对session setup报文做出回应,并为用户分配唯一的UID,在客户端与其通信时使用
  3. 访问共享资源。  客户端访问Samba共享资源时,发送tree connect 指令数据包,通知服务器需要访问的共享资源名,如果设置允许,Samba服务器会为每个客户端与共享资源连接分配TID,客户端即可访问需要的共享资源
  4. 断开连接。  共享使用完毕,客户端服务器发送tree disconnect报文关闭共享,与服务器断开连接

三、项目实训

3.1目的

利用samba服务实现linux和linux及windows主机之间进行文件资源的共享

并且模拟企业真实部门情况,对各部门进行权限管理分配

3.2准备工作

linux服务器(IP:192.168.1.2/24)

linux客户端(IP:192.168.1.3/24)

windows客户端(IP:192.168.1.100/24)

所有主机在同一局域网内,并且保证网络连通性

安装samba软件包

3.2.1服务器安装samba服务软件包

使用yum命令查看Samba服务软件包信息

使用yum命令安装服务器Samba服务

 使用   rpm -qa |grep samba   查询是否成功安装

 服务器安装用户软件包“samba-client.x86_64”

3.2.2客户端安装软件包

使用yum install samba-client.x86_64 -y安装客户机samba软件包

3.3配置Samba服务
3.3.1开启Samba服务,并设置开启自启动

 允许防火墙通过Samba服务

3.3.2创建共享文件夹

server上创建共享文件夹和其子文件夹

创建7个文件夹(四个组文件)

mkdir /share-----------------------------------------------------------创建默认共享文件夹(默认共享)

mkdir /share/system-------------------------------------------------------------------------系统组文件夹

mkdir /share/develop---------------------------------------------------------------------------开发组文件

mkdir /share/test---------------------------------------------------------------------------------测试组文件

mkdir /share/product------------------------------------------------------------------------产品测试文件

mkdir /share/developandtest----------------------------------------------------开发和测试共享文件

mkdir /share/public--------------------------------------------------------------------------------临时文件

mkdir /share/ziliaoku---------------------------------------------------------------------------资料库文件

 

 3.3.3创建群组

groupadd system---------------------------------------------------------------------------------创建系统组

groupadd develop--------------------------------------------------------------------------------创建开发组

groupadd test--------------------------------------------------------------------------------------创建测试组

groupadd product--------------------------------------------------------------------------------创建产品组 

 创建相应用户并划分组

更改文件所有者和所属组 

3.3.4修改文件用户权限

 

使用setfacl命令精确修改共享文件权限

用法: setfacl [-bkndRLP] { -m|-M|-x|-X ... } 文件路径...

-m,    --modify-acl 更改文件的访问控制列表

-M,    --modify-file=file 从文件读取访问控制列表条目更改

-x,    --remove=acl 根据文件中访问控制列表移除条目

-X,    --remove-file=file 从文件读取访问控制列表条目并删除

-b,    --remove-all 删除所有扩展访问控制列表条目

-k,    --remove-default 移除默认访问控制列表

     --set=acl 设定替换当前的文件访问控制列表

     --set-file=file 从文件中读取访问控制列表条目设定

     --mask 重新计算有效权限掩码

-n,    --no-mask 不重新计算有效权限掩码

-d,    --default 应用到默认访问控制列表的操作

-R,    --recursive 递归操作子目录

-L,    --logical 依照系统逻辑,跟随符号链接

-P,     --physical 依照自然逻辑,不跟随符号链接

     --restore=file 恢复访问控制列表,和“getfacl -R”作用相反

          --test 测试模式,并不真正修改访问控制列表属性

-v,    --version           显示版本并退出

-h,    --help              显示本帮助信息

查看修改后的/share/system文件具有的权限 

 3.3.5修改配置文件

修改samba的主配置文件:vim /etc/samba/smb.conf

重启samba服务 

 3.3.6设置samba服务用户

 将用创建的四个用户添加到samba用户(统一密码:123456

smbpasswd -a user1(回车后直接输入密码)

smbpasswd -a user2(回车后直接输入密码)

smbpasswd -a user3(回车后直接输入密码)

smbpasswd -a user4(回车后直接输入密码)

 3.3.7让samba服务被安全上下文允许使用

chcon -t samba_share_t /share/ -R---更改共享目录的context值或者禁用SELinux

或者: 

3.4测试结果 
Windows客户端(Win 10)

在“启用或关闭windows”功能里开启有关SMB的这几项

Win+R   输入\\192.168.1.2  即可访问  

输入账号/密码(这里使用“user2/123456”进行验证)

进入samba空间

根据之前设置的权限:develop组在develop和public具有777权限(最大),对zilioaku具有只读权限,所以:

user2可以在develop组的develop文件里操作,并创建文件

 

user2在其他组所属的文件中没有权限访问,例如system组的文件system 

 user2在ziliaoku只读,没有操作权限,无法创建文件夹

 

 Linux客户端

输入smbclient //192.168.1.2/share -U user2

根据之前设置的权限:develop组在develop和public具有777权限(最大)

对zilioaku具有只读权限,所以:

user2可以在develop文件里操作,并创建文件

 

user2在ziliaoku没有操作权限 也可以使用其他用户进行权限验证

  • 26
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Samba是一种用于在Linux系统上实现Windows文件和打印机共享的服务程序。要配置管理Samba服务器,可以编辑Samba配置文件,设置Samba用户和共享目录,并确保Samba服务已经启动。 ### 回答2: Samba服务器是运行在Linux系统上的一种文件共享服务,它可以让不同操作系统的设备在同一网络内共享文件。对于Linux系统管理员来说,配置管理Samba服务器是一项非常重要的工作。 1. 安装Samba软件包 首先,需要安装Samba软件包。在Debian/Ubuntu系统上,可以使用以下命令安装: ``` sudo apt-get update sudo apt-get install samba ``` 2. 创建Samba用户和组 Samba服务器需要自己的用户和组。在Linux系统上,可以使用以下命令创建组: ``` sudo groupadd sambashare ``` 然后,可以创建Samba用户并将其添加到组中: ``` sudo useradd -m -s /bin/bash -G sambashare username sudo passwd username sudo smbpasswd -a username ``` 此命令将创建一个名为“username”的用户,并将其添加到“sambashare”组中。然后,需要为该用户设置密码,并使用smbpasswd命令将其添加到Samba用户数据库中。 3. 配置Samba服务器 Samba服务器配置文件是“/etc/samba/smb.conf”,可以使用文本编辑器进行编辑。在编辑之前,最好先备份当前的配置文件。 通过编辑器打开Samba配置文件,找到以下部分: ``` [global] workgroup = WORKGROUP ``` 这个部分定义了Samba服务器的工作组名称。将“WORKGROUP”更改为网络中设备的工作组名称。 然后,需要确定共享目录的位置,并添加以下部分: ``` [sharename] path = /path/to/share valid users = username read only = no browsable = yes ``` 这个部分定义了共享目录的名称、“path”字段指定共享目录的位置,“valid users”指定哪个用户有权限访问该目录,“read only”指定用户是否只能读取共享的文件,“browsable”指定共享目录是否可浏览。 在配置完成后,使用以下命令重新启动Samba服务: ``` sudo service smbd restart ``` 4. 防火墙配置 如果系统上启用了防火墙,则需要打开Samba服务器所使用的端口。在Ubuntu系统上,可以使用以下命令打开端口: ``` sudo ufw allow samba ``` 在配置完成后,可以使用以下命令检查Samba服务器的状态: ``` sudo smbstatus ``` 这个命令将显示正在运行的Samba服务器的状态,包括哪些用户正在访问Samba共享和通过Samba共享传输的文件。 总体来说,配置管理Samba服务器需要管理员具备一定的Linux系统和网络知识。通过以上步骤,可以配置管理Samba服务器,从而让不同操作系统的设备在同一网络内共享文件。 ### 回答3: Samba是一种可以在Linux操作系统上实现Windows文件和打印机共享的开源软件。在实际应用中,Samba服务器配置管理是一项非常重要的工作,本文将详细介绍如何实现配置管理Samba服务器。 一、安装Samba服务 Samba服务通常可以在大多数Linux发行版中轻松安装。例如,在基于Debian的发行版中,可以使用以下指令来安装Samba服务器: sudo apt-get install samba 如果你使用的是其他的Linux发行版,请按照该发行版的指南进行Samba服务器的安装。 二、创建Samba共享目录 在配置Samba服务器之前,我们需要首先创建一个Samba共享目录并将其设置为Samba服务器上的公共区域。以下指令将在/root目录下创建一个名为shared的目录: sudo mkdir /root/shared 接下来,我们需要修改共享目录的权限,以便Samba可以访问该目录。以下指令将设置共享目录的所有者为root,并将权限设置为777: sudo chown -R root:root /root/shared sudo chmod -R 777 /root/shared 三、创建Samba用户和组 为了实现对Samba服务器的访问控制,我们需要先创建Samba用户和组。以下指令将创建名为smbgrp的组,以及名为smbusr的用户: sudo groupadd smbgrp sudo useradd -M -s /dev/null -d /nonexistent -G smbgrp smbusr 四、Samba配置文件 Samba服务器配置可以通过修改Samba配置文件实现。在Ubuntu系统下,该文件通常位于/etc/samba/smb.conf。以下是一个基本的smb.conf文件示例: [global] workgroup = WORKGROUP server string = Samba Server %v netbios name = ubuntu security = user map to guest = bad user dns proxy = no #启用主机发现,可以在Windows资源管理器里访问Linux共享文件夹。 name resolve order = lmhosts host wins bcast [shared] path = /root/shared valid users = smbusr read only = no guest ok = no 在以上示例配置文件中: - workgroup:设置Windows工作组名称。 - server string:设置服务器的名称。 - netbios name:设置服务器的NetBIOS名称。 - security:设置用户登录Samba服务器的权限级别。 - map to guest:如果Samba服务器的用户不存在,则该选项将决定是让用户登录为匿名用户还是拒绝访问。 - dns proxy:是否在Samba服务器配置DNS代理。 - name resolve order:设置主机名解析顺序。 - shared:设置Samba共享目录和其相应的共享选项。 五、启动Samba服务并测试 在完成上述步骤之后,我们需要通过以下指令来启动Samba服务并测试其功能: sudo service smbd restart sudo systemctl enable smbd sudo systemctl start smbd 最后,我们可以在Windows操作系统上使用Windows资源管理器访问Samba共享文件夹。在Windows资源管理器中,按下“Win + R”打开运行命令框,输入\\\\linux_ip_address,在出现的窗口中输入Samba用户名和密码即可访问Samba共享文件夹。 以上是对于如何配置管理Samba服务器的简要介绍,希望能对Linux系统管理员们有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值