Linux系统了解 Samba服务器配置的工作流程
了解 Samba服务器配置的工作流程
当Samba 服务安装完毕,并不是直接可以使用 Windows 或 Linux的客户端访问Samba服务器,还必须对服务器进行设置:告诉 Samba 服务器将哪些目录共享出来给客户端进行访问,并根据需要设置其他选项,比如添加对共享目录内容的简单描述信息和访问权限等具体设置。
基本的Samba 服务器的搭建流程主要分为5个步骤。
(1)编辑主配置文件 smb.conf,指定需要共享的目录,并为共享目录设置共享权限。
(2)在smb.conf文件中指定日志文件名称和存放路径。
- 设置共享目录的本地系统权限。
- 重新加载配置文件或重新启动SMB服务,使配置生效
- 关闭防火墙,同时设置SELinux为Samba服务器允许。
Samba 的工作流程如图1所示。
(1)客户端请求访问 Samba 服务器上的共享目录。
(2)Samba 服务器接收到请求后,会查询主配置文件 smb.conf,看是否共享了目录,如果共享了目录则查看客户端是否有权限访问。
(3)Samba 服务器会将本次访问信息记录在日志文件之中,日志文件的名称和路径都需要我们设置。
(4)如果客户端满足访问权限设置,则允许客户端进行访问。
图1 Samba 的工作流程示意图
主要配置文件 smb.conf
Samba的配置文件一般就放在/etc/samba 目录中,主配置文件名为smb.conf。
1. Samba 服务程序中的参数以及作用
使用ll命令查看 smb.conf 文件属性,并使用命令 vim /etc/samba/smb.conf 查看文件的详细内容,如图2所示。
图2 查看 smb.conf 配置文件
CentOS7的smb.conf配置文件已经简化,只有36行左右。为了更清楚地了解配置文件,建议研读 smb.conf.example。Samba 开发组按照功能不同,对smb.conf文件进行了分段划分,条理非常清楚。表1罗列了主配置文件的参数以及相应的注释说明。
表1 Samba 服务程序中的参数以及作用
作用范围 |
参数 |
作用 |
[global] |
workgroup=MYGROUP |
#工作组名称,如workgroup=SmilcGroup |
server string=Samba Server Version %v |
服务器描述,参数%v为显示SMB版本号 |
|
log file = /var/log/samba/log.%m |
定义日志文件的存放位置与名称,参数%m为来访的主机名 |
|
max log size=50 |
#定义日志文件的最大容量为50KB |
|
Security = user |
#安全验证的方式,总共有4种,如 security-user, 表示: 需验证来访主机提供的口令后才可以访问;提升了安全性,系统默认方式 |
|
Security = share |
#来访主机无须验证口令;比较方便,但安全性很差 |
|
Security = server |
#使用独立的远程主机验证来访主机提供的口令(集中管理账户) |
|
Security = domain |
#使用域控制器进行身份验证 |
|
passdb backend = tdbsam |
#定义用户后台的类型,共有3种。第一种表示: 创建数据库文件并使用pdbedit命令建立Samba服务程序的用户 |
|
passdb backend = smbpasswd |
#使用smbpasswd命令为系统用户设置Samba服务程序的密码 |
|
passdb backend =ldapsam |
#ldapsam:基于 LDAP服务进行账户验证 |
|
load printers=yes |
#设置在Samba服务启动时是否共享打印机设备 |
|
cups options=raw |
#打印机的选项 |
|
[homes] |
#共享参数 |
|
comment=Home Directories |
#描述信息 |
|
browseable=no |
#指定共享信息是否在“网上邻居”中可见 |
|
writable=yes |
#定义是否可以执行写人操作,与“read only”相反 |
|
[printers] |
#打印机共享参数 |
技巧:为了方便配置,建议先备份 smb.conf,一旦发现错误可以随时从备份文件中恢复主配置文件。操作如下。
[root@CentOS7-1 ~]# cd /etc/samba
[rootCentOS7-1 samba]#ls
[root@CentOS7-1 samba]# cp smb.conf smb.conf.bak
2.Share Definitions 共享服务的定义
Share Definitions 设置对象为共享目录和打印机,如果想发布共享资源,需要对 Share Definitions 部分进行配置。Share Definitions 字段非常丰富,设置灵活。
我们先来看几个最常用的字段。
(1)设置共享名。
共享资源发布后,必须为每个共享目录或打印机设置不同的共享名,供网络用户访问时使用,并且共享名可以与原目录名不同。
共享名的设置非常简单,格式为:
[共享名]
(2)共享资源描述。
网络中存在各种共享资源,为了方便用户识别,可以为其添加备注信息,以方便用户查看时知道共享资源的内容是什么。
格式:
comment=备注信息
(3)共享路径。
共享资源的原始完整路径,可以使用 path 字段进行发布,务必正确指定。
格式:
path =绝对地址路径
(4)设置匿名访问。
设置是否允许对共享资源进行匿名访问,可以更改 public 字段。
格式:
public = yes #允许匿名访问
public= no #禁止名访问
【例1】samba服务器中有个目录为/share,需要发布该目录成为共享目录,定义共享名为public,要求:允许浏览、允许只读、允许匿名访问。设置如下所示。
[public]
comment = public
path = /share
browseable = yes
read only = yes
public = yes
(5)设置访问用户。
如果共享资源存在重要数据的话,需要对访问用户进行审核,我们可以使用 valid users字段进行设置。
格式:
valid users = 用户名
valid users = @组名
【例2】 samba 服务器/share/tech 目录中存放了公司技术部数据,只允许技术部员工和经理访问,技术部组为tech,经理账号为manager。
[tech]
comment=tech
path=/share/tech
valid users=@tech,manager
(6)设置目录只读。
共享目录如果需要限制用户的读写操作,我们可以通过read only实现。
格式:
read only= yes #只读
read only= no #读写
- 设置过滤主机。注意网络地址的写法!
相关示例如下。
hosts allow = 192.168.10. server.abc.com
上述程序表示允许来自192.168.10.0或 server.abc.com的访问者访问samba 服务器资源。
hosts deny= 192.168.2.
上述程序表示不允许来自192.168.2.0网络的主机访问当前 samba 服务器资源。
【例3】Samba 服务器公共目录/public存放大量共享数据,为保证目录安全,仅允许192.168.10.0网络的主机访问,并且只允许读取,禁止写入。
[public]
comment = public
path = /public
public = yes
read only = yes
hosts allow = 192.168.10.
(8)设置目录可写。
如果共享目录允许用户写操作,可以使用 writable 或 write list 两个字段进行设置。
writable 格式:
writable=yes #读写
writable=no #只读
write list格式:
write liet = 用户名
write list = @组名
注意:[homes]为特殊共享目录,表示用户主目录。[printers]表示共享打印机。
Samba 服务的日志文件和密码文件
1.Samba 服务日志文件
日志文件对于 Samba 非常重要,它存储着客户端访问 Samba 服务器的信息,以及Samba服务的错误提示信息等,可以通过分析日志,帮助解决客户端访问和服务器维护等问题。
在/ete/samba/smb.conf文件中,log file 为设置Samba日志的字段。如下所示:
log file = /var/log/samba/log.%m
Samba服务的日志文件默认存放在/var/log/samba/中,其中 Samba 会为每个连接到Samba服务器的计算机分别建立日志文件。使用
Is -a /var/log/samba 命令可以查看日志的所有文件。
当客户端通过网络访问 Samba 服务器后,会自动添加客户端的相关日志。所以,Linux管理员可以根据这些文件来查看用户的访同情况和服务器的运行情况。另外当 Samba 服务器工作异常时,也可以通过/var/log/samba/下的日志进行分析。
2.Samba 服务密码文件
Samba 服务器发布共享资源后,客户端访问 Samba服务器,需要提交用户名和密码进行身份验证,验证合格后才可以登录。Samba 服务为了实现客户身份验证功能,将用户名和密码信息存放在/etc/samba/smbpasswd 中,在客户端访问时,将用户提交的资料与smbpasswd中存放的信息进行比对,如果相同,并且Samba服务器其他安全设置允许,客户端与Samba服务器的连接才能建立成功。
那如何建立 Samba 账号呢?首先,Samba 账号并不能直接建立,需要先建立Linux 同名的系统账号。例如,如果要建立一个名为yy的Samba 账号,那么 Linux 系统中必须提前存在一个同名的yy系统账号。
Samba 中添加账号的命令为smbpasswd,格式为:
smbpasswd -a 用户名
【例4】在Samba 服务器中添加 Samba 账号reading。
(1)建立Linux系统账号 reading。
[root@CentOS7-1 ~]# useradd reading
[root@CentOS7-1 ~]# passwd reading
- 添加reading用户的Samba 账号。
[root@CentOS7-1 ~]#smbpasswd -a reading
Samba 账号添加完毕。如果在添加 Samba 账号时输人完两次密码后出现错误信息Failed to modify password entry for user amy,则是因为 Linux 本地用户里没有reading 这个用户,在Linux系统里面添加一下就可以了。
提示:在建立Samba 账号之前,一定要先建立一个与Samba 账号同名的系统账号。
经过上面的设置,再次访问Samba 共享文件时就可以使用reading账号。
Linux系统了解 Samba服务器配置的工作流程相关推荐
- Linux系统搭建Samba服务
SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统.打印机及其他资源.(思考我i们pc上的网上邻居)不同用户访问主机,根据自己的权限可看到或操作相应的资源. 前提条件: ...
- linux系统管理与服务器配置高志君_CDIO教材——Linux系统应用与服务器配置
项目导学 第1章Linux系统的起源与安装 学习引导 1.1项目一:Red Hat Enterprise Linux 5系统的安装 1.1.1Linux系统的起源与发展 1.1.2Linux系统的组成 ...
- Linux下计划任务和标准化工作流程
1.定时任务和计划任务: 2.一次性定时任务at(生产中很少使用) at命令: at [option] TIME常用选项:-V 显示版本信息:-l: 列出指定队列中等待运行的作业:相当于atq-d: ...
- Linux服务配置 samba服务器配置
一.什么是samba服务器? 先上一段百度百科: Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信 ...
- Linux系统从uboot到内核启动流程
1. BROM引导: ARM CPU刚上电时,它的PC寄存器指针指向IC内嵌的一片ROM的起始位置处,这片ROM称之为BROM(boot rom),系统就是通过这片BROM引导起来的.BROM的空间比 ...
- linux的samba服务实验报告,Linux Samba服务器配置实验报告.doc
湖北理工学院 实验报告 课程名称: Linux 网络环境 实验项目:Samba服务器配置 专 业: 班 级: 学 号: 学生姓名: 实验报告 实验项目名称: Samba服务器配置 同组人:无 实验时间 ...
- linux系统的gui程序,Linux GUI子系统概述 GUI子系统的构成及工作流程
作者:Nick 开始前的几点说明: 本文会尽量从初学者的角度去描述整个Linux整个图形子系统,但由于其复杂性,涉及到的模块比较多,可能会需要一些相关的先验知识: 对于系统的介绍,分析的着重点可能不会 ...
- 搭建文件共享服务器 实验报告,SAMBA服务器配置实验报告
<SAMBA服务器配置实验报告>由会员分享,可在线阅读,更多相关<SAMBA服务器配置实验报告(7页珍藏版)>请在人人文库网上搜索. 1.实验报告-SAMBA服务器配置一.实验 ...
- Samba服务器配置(1)--源码安装
一.Samba概述 1991年,Andrew Tridgwell通过对数据包的分析,而编写了Samba这个自由软件(Samba官方网站:http://www.samba.org),只要在类UNIX启用 ...
最新文章
- opencv投影变换
- flot中文API(转载)
- java通过jdbc登陆系统_JDBC模拟登录
- Android 源码查看和解析
- mimo 鲁棒控制 matlab,项目调度问题的一些matlab开发的工具箱
- php网站后台密码加密,thinkphp 后台登陆密码加密传入密钥
- 控制台怎么退出mysql_退出mysql控制台与退出mysql
- jQuery Ajax 实例 全解析
- ASP.NET Core Kestrel部署HTTPS
- 用Python去除扫描型PDF中的水印
- sql语句中使用函数会耗费性能吗_挽救数据库性能的 30 条黄金法则 | 原力计划...
- 框架会使程序员变笨吗?
- python图像对比_python+PIL实现图片对比(一)
- 便携式车用CAN分析仪-DBC解码、J1939和图形化分析
- CentOS 7.9命令行配置有线网卡
- 通信原理第三章:窄带随机过程
- Windows配置域名
- windows7打印时,显示脱机,提示“服务器打印后台处理程序服务没有运行”。...
- 游戏设计分析——魔塔
- 黑苹果cpu架构三个问号_苹果三位芯片大神讲述M1背后的故事
热门文章
- phpcms模板生成原理
- android:H5上arcgis 地图无法拖动,手势失效
- node.js中exports与module.exports的区别
- 什么是性能测试,和压力测试、负载测试的区别是什么?
- Acer 宏碁 AS4750G-2454G75Mnbb 安装 Windows Server 2012
- verdi方法fsdbreport将fsdb的某个信号值抽出为可读文件 及波形转换,合并,修改工具,Verdi培训整理笔记
- htonl函数的功能_htons和htonl函数具体应用
- 软件工程复习 第一章 概述 软件定义 软件危机 软件三要素
- splinter开发
- 卡特兰数[catalan数]`