Linux网络服务(下)Samba服务配置

本文详细介绍了如何在Linux系统中配置Samba服务,实现与Windows操作系统的文件共享。首先,介绍了Samba服务的基本概念和作用,接着讲述了安装和启动Samba服务的步骤,包括安装相关软件包、启动服务以及设置开机启动。然后,重点讲解了smb服务的配置,包括编辑smb.conf文件、设置共享信息和用户权限。此外,还涵盖了重启smb服务、防火墙设置、Windows下连接smb服务的登录认证,以及Samba客户端访问Windows共享信息的方法。文章最后对Samba配置文件smb.conf的参数进行了详细解释,帮助读者理解并定制Samba服务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Samba服务

Linux主机和其他Linux或UNIX主机实现共享,可以采用如NFS、FTP等方式,Linux和Windows操作系统之间实现文件共享要使用Samba服务。

1.Samba简介

1、SMB
SMB是一个高层协议,这个协议用于共享文件、共享打印机、共享串口等。在Windows的网络邻居下访问一个域内的其他机器,就是通过这个协议实现的。
SMB是一个遵循客户机/服务器模式的协议。SMB服务器负责通过网络提供可用的共享资源给SMB客户机,服务器和客户机之间通过TCP/IP、IPX及NetBEUI进行连接。一旦服务器和客户机之间建立了一个连接,客户机就可以通过向服务器发送命令完成共享操作,如读、写、检索等。
2、Samba基础
Samba是一组软件包,也是一套让UNIX系统能够应用Microsoft网络通信协议的软件。它使运行UNIX系统的计算机能与运行Windows系统的计算机分享驱动器与打印机。Samba属于GNU Public License(简称GRL)的软件。Samba的核心是SMB。
Samba是由smbd和nmbd两个守护进程组成的。它们使用的全部配置信息都保存在smb.conf中,smb.conf向这两个守护进程说明输出内容,共享资源等信息。smbd进程的作用是Samba的SMB服务器,它使用SMB与客户连接,完成事实上的用户认证、权限管理和文件共享认证,该软件包的资源与Linux进行协商;nmbd提供NetBIOS名字服务的守护进程,可以帮助客户定位服务器和域,如同Windows NT上的WINS服务器。Samba软件包还包括命令行工具。

Samba的主要功能如下:
(1)提供Windows操作系统风格的文件和打印机共享,Windows操作系统通过它使用共享UNIX等其他操作系统的资源,外表看起来和共享的Windows操作系统资源没有区别。
(2)提供SMB客户功能,利用Samba提供的smbclint程序可以从UNIX下以类似于FTP的方式访问Windows的资源。
(3)备份PC上的资源,利用一个名为smbtar的shell脚本,可以使用tar格式备份和恢复一台远程Windows上的共享文件。
(4)提供一个命令行工具,在其上可以有限制的支持Windows操作系统的某些管理功能。

2.smb服务的安装与启动

(1)安装Samba服务器
首先与命令rpm -qa | grep samba查看是否安装Samba相关软件,已安装就会出现如下图所示。
在这里插入图片描述
Linux系统中提供了Samba服务器的RPM包,主要有以下几个:
①samba:Samba服务器软件。
②samba-libs:Smb服务所需要的库文件。
③samba-common:Samba服务器及客户端均需要的文件及工具软件。
④samba-client:Samba客户端软件。

如果没有安装Samba软件,使用命令yum install samba安装。

如果安装报错如下所示,

---> 软件包 pytalloc.x86_64.0.2.1.2-1.el7 将被 安装
--> 正在处理依赖关系 libtalloc = 2.1.2-1.el7,它被软件包 pytalloc-2.1.2-1.el7.x86_64 需要
--> 解决依赖关系完成
错误:软件包:pytalloc-2.1.2-1.el7.x86_64 (dvd)
          需要:libtalloc = 2.1.2-1.el7
          已安装: libtalloc-2.1.6-1.el7.x86_64 (@anaconda)
              libtalloc = 2.1.6-1.el7
          可用: libtalloc-2.1.2-1.el7.x86_64 (dvd)
              libtalloc = 2.1.2-1.el7
 您可以尝试添加 --skip-broken 选项来解决该问题

使用yum remove 软件包名称先卸载已安装的软件包,然后再使用yum install samba命令安装应该就没有问题了。

如果安装还是提示:Error Downloading Packages,先使用yum clean all清理本地yum缓存,然后yum list查看软件包列表,如果查询不到软件包列表,就要去查看yum源是否配置正确。不会配置yum源的可以参考这篇Linux系统在线和配置yum本地源两种方式安装ifconfig服务,最后再重新安装yum install samba就好了。

安装完成!
在这里插入图片描述
(2)启动samba服务:

systemctl start smb
systemctl status smb #查看smb状态

可以看到active (running)状态,就是已启动。
在这里插入图片描述
也可以设置系统启动时自动加载smb服务器的启动,使用命令systemctl enable smb.service

3.smb服务的配置

(1)进入/etc/samba目录,编辑smb.conf文件。在这之前也可以先使用命令grep -v "#" smb.conf | grep -v ";"过滤掉默认配置信息中的垃圾信息。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)自定义共享信息的配置
输入vi smb.conf,然后输入:set number显示行号,便于查看,
在这里插入图片描述
调整设置,在命令模式下依次输入以下代码,之后就可以得到如图所示,最后一块就是我们要编辑的共享信息配置。

:16,21 co 37#复制16-21行到末尾
:36,37 co 43#复制36-37行到43行后面
:26 co 40#26插到40的下一行

在这里插入图片描述
配置之前,共享的目录要已经存在,没建的去新建一个。这里共享的目录是/smbshare,而且要设置文件夹的权限为757。

cd
ls
mkdir /smbshare
ll
chmod 757 smbshare#修改权限
ls
ll

打断一下,在这里我要记一下一个困惑我很久的错误,就是新建的目录/smbshare就是建在根目录下,就是[root@localhost /],而我最后访问不了共享目录问题就是出在这里,我新建的目录是在root用户的主目录下,就是[root@localhost ~]。我当时直接用的命令是mkdir data,就是建在了root用户的主目录下。此外,直接用/smbshare路径就可以新建在根目录下了。(PS:经历这个,我对根目录和用户主目录又多了更深的理解呜呜)

在这里插入图片描述

还有设置Samba访问密码。
Samba资源共享后,访问需要口令权限的认证,而口令保存在一个Samba口令文件中,该文件由smbpasswd file参数指定,默认为/etc/samba/smbpasswd文件。初始情况下,该文件不存在,在添加Samba访问账户后,自动生成该文件。添加Samba访问的账户必须是本地系统已经存在的账户。添加Samba账户命令如下:

[root@localhost ~]# smbpasswd -a cherry
New SMB password:
Retype new SMB password:
Added user cherry.

上面这些都准备好再去编辑smb.conf共享信息。
将刚刚准备的最后一块改成下面这些信息。

[SambaShare]
     40         comment = samba Directories				#对共享目录的描述,可以任意写
     41         path = /smbshare						#共享目录路径
     42         valid users = root, cherry				#可访问用户
     43         browseable = Yes						#可浏览
     44         read only = No							#可写
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值