Linux系统了解 Samba服务器配置的工作流程

news2024/12/28 18:38:33

了解 Samba服务器配置的工作流程

   当Samba 服务安装完毕,并不是直接可以使用 Windows 或 Linux的客户端访问Samba服务器,还必须对服务器进行设置:告诉 Samba 服务器将哪些目录共享出来给客户端进行访问,并根据需要设置其他选项,比如添加对共享目录内容的简单描述信息和访问权限等具体设置。

基本的Samba 服务器的搭建流程主要分为5个步骤。

 (1)编辑主配置文件 smb.conf,指定需要共享的目录,并为共享目录设置共享权限。

 (2)在smb.conf文件中指定日志文件名称和存放路径。

  1. 设置共享目录的本地系统权限。
  1. 重新加载配置文件或重新启动SMB服务,使配置生效
  2. 关闭防火墙,同时设置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   #读写

  1. 设置过滤主机。注意网络地址的写法!

相关示例如下。

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

  1. 添加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账号。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/11730.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微服务架构陷阱与挑战

六大陷阱 粒度太细 服务关系复杂 需求分析、方案设计、测试、部署。。。难度都会增加 例如: 分布式服务如何保证数据一致性分析设计的时候需要考虑的影响点变多 团队效率低下 需求分析、方案设计、测试、部署。。。工作量都会增加 例如: 接口设计…

Xintell——全生命周期的模型建设+智能数据中台

在业务反欺诈、运营及数据分析上,经常会涉及到模型。模型就是基于目标群体的大规模采样数据,挖掘出某个实际问题或客观事物的现象本质及运行规律,利用抽象的概念分析存在问题或风险,计算推演出减轻、防范问题或风险的对策过程&…

怎么用手机压缩图片?教给大家三种手机压缩图片方法

如何使用手机把图片的内存进行压缩呢?大家在使用照片的时候,如果照片的内存太大,不仅会占用手机的内存,也会影响一些网站上传图片的操作,因为图片内存太大很多都是上传不了的,为了解决这一问题我们可以将图…

【设计模式】适配器模式:攻敌三分,自留七分,以超兽武装的例子来谈谈适配器模式

文章目录1 适配器模式1.1 定义1.2 结构1.3 类图1.3.1 类适配器模式1.3.2 对象适配器模式2 例子2.1 类适配器模式2.1.1 代码2.1.2 效果图2.2 对象适配器模式2.2.1 代码2.2.2 效果通3 优缺点及适用环境3.1 优点3.2 缺点3.3 适用环境1 适配器模式 1.1 定义 将一个类的接口转换成客…

【深入理解C++】RTTI、dynamic_cast、typeid()

文章目录1.RTTI2.dynamic_cast运算符3.typeid运算符4.RTTI与虚函数表1.RTTI RTTI(Run Time Type Identification),即运行时类型识别,通过 RTTI,程序能够使用基类的指针或引用来检查这些指针或引用所指的对象的实际派生类型。 RTTI 提供了两…

数据库命名规范

1、mysql 规范 1.1 表名规范 模块_功能点 示例:alllive_log alllive_category。采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线_组成,命名简洁明确,多个单词用下划线_分隔,一个项目一个数据库。全部小写命名&#xff0c…

嵌入式分享合集103

一、EEPROM和Flash 存储器分为两大类:RAM和ROM,本文主要讨论ROM。ROM最初不能编程,出厂什么内容就永远什么内容,不灵活。 后来出现了PROM,可以自己写入一次,要是写错了,只能换一片,自…

React中的生命周期函数

生命周期的三个阶段: 1.创建时(挂载阶段) ①执行时机:组件创建时(页面加载时) ②执行顺序:constructor()->render()->componentDidMount() import React, { Com…

nodejs+vue+elementui共享充电宝管理系统express

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 2 前端技术:nodejsvueelementui 前端:HTML5,CSS3、JavaScript、VUE 功能介绍 管理员:…

H5基本开发2——(HTML文档基本结构)

现实生活中,任何一个文档都是具有一定的格式,不同的文档,基本格式不同,例如:请假条、调休单、剧本、年中总结、十九大报告、等等,而我们所编写等html文档也是具有一定的编写基本格式的 事实上W3C组织一直致…

[附源码]java毕业设计教学辅助系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

TwoModalBERT进行角色分类

你是否遇到过数据集中有多个文本特性的情况?例如,根据消息的上下文正确地对消息进行分类,即理解前面的消息。比如说我们有下面的数据集,需要对其进行分类。 当只考虑message时,你可以看到它的情绪是积极的,因为“incr…

关于电影的HTML网页设计—— 电影小黄人6页 HTML+CSS+JavaScript

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置,有div的样式格局,这个实例比较全面,有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 精彩专栏推荐&#x1f4…

【Pytorch with fastai】第 10 章 :NLP 深入探讨 RNN

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

【JavaScript高级程序设计】重点-第五章笔记:Date、RegExp、原始值包装类、单例内置对象

文章目录基本引用类型1.Date1.1 继承的方法1.2 日期格式化方法1.3 日期/时间组件方法2.RegExp正则表达式2.1 RegExp 实例属性2.2 RegExp 实例方法2.3 RegExp 构造函数属性3.原始值包装类型3.1 Boolean3.2 Number3.3 String3.3.1 JavaScript 字符3.3.2 normalize()方法3.3.3 字符…

AI 实战篇 |十分钟学会【动物识别】,快去寻找身边的小动物试试看吧【送书】

🎬 博客主页:https://xiaoy.blog.csdn.net 🎥 本文由 呆呆敲代码的小Y 原创,首发于 CSDN🙉 🎄 学习专栏推荐:Unity系统学习专栏 🌲 游戏制作专栏推荐:游戏制作 &…

计算机毕业设计node.js+vue在线日程管理系统

项目介绍 我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,在线日程管理系统被用户普遍使用,为方便用户能够可以随时进行在线管理自己的日程的数据信息,特开发了基于在线日程管理…

【Pytorch with fastai】第 11 章 :使用 fastai 的中级 API 进行数据处理

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

第2关:子节点创建、列出、删除

子节点创建、列出 首先,需要启动服务器,并使用zkCli.sh连接服务器,进入客户端命令行界面(如第一关所述)。 创建子节点类似于创建新的节点,子节点也具有四种类型的节点。唯一的区别是:子节点的…

redis学习4-list

基本的数据类型,列表,redis命令是不区分大小写的 在redis中,我们可以把list玩成,线,队列,阻塞队列! 所有的list命令都是用l开头的 [rootcentos7964 bin]# redis-cli -p 6379 127.0.0.1:6379> LPUSH li…