Samba服务介绍:

起源

​ 对于windows的网上邻居来讲,共享文件的方式用的是SMB和CIFS协议以及NETBIOS协议Linux/Unix之间用的是NFS协议。

​ 但是Linux和Windows之间是不能共享的,所以澳大利亚国立大学的Andrew Tridgell,决定开发一款软件,这款软件就是为了实现不同的系统之间互相共享文件的,于是一款叫做SMB的软件横空出世了,但是这个名字不能被注册成商标,因为已经有SMB协议了,于是作者给名字上加了两个A,就成了 SAMBA。

功能:

​ Samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,Samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享,由于NFS(网络文件系统)可以很好的完成Linux与Linux之间的数据共享,因而 Samba较多的用在了Linux与windows之间的数据共享上面。

工作原理:

​ SMB是基于客户机/服务器型的协议,因而一台Samba服务器既可以充当文件共享服务器,也可以充当一个Samba的客户端,例如,一台在Linux 下已经架设好的Samba服务器,windows客户端就可以通过SMB协议共享Samba服务器上的资源文件,同时,Samba服务器也可以访问网络中 其它windows系统或者Linux系统共享出来的文件。

 事实上, 就像 NFS 是架构在 RPC Server 上面一样, SAMBA 这个文件系统是架构在 NetBIOS (Network Basic Input/Output System, NetBIOS) 这个通讯协议上面所开发出来的。
 
 Samba在windows下使用的是NetBIOS协议,如果你要使用Linux下共享出来的文件,请确认你的windows系统下是否安装了NetBIOS协议。

  组成Samba运行的有两个服务,一个是SMB,另一个是NMB;SMB是Samba 的核心启动服务,主要负责建立 Linux Samba服务器与Samba客户机之间的对话, 验证用户身份并提供对文件和打印系统的访问,只有SMB服务启动,才能实现文件的共享,监听139 TCP端口;而NMB服务是负责解析用的,类似与DNS实现的功能,NMB可以把Linux系统共享的工作组名称与其IP对应起来,如果NMB服务没有启动,就只能通过IP来访问共享文件,监听137和138 UDP端口。

yum源:

yum简介

yum,全称“Yellow dog Updater, Modified”,是一个专门为了解决包的依赖关系而存在的软件包管理器。就好像 Windows 系统上可以通过 360 软件管家实现软件的一键安装、升级和卸载,Linux 系统也提供有这样的工具,就是 yum。

网络yum源配置

使用 yum 安装软件包之前,需指定好 yum 下载 RPM 包的位置,此位置称为 yum 源。换句话说,yum 源指的就是软件安装包的来源。

一般情况下,只要你的主机网络正常,可以直接使用网络 yum 源,不需要对配置文件做任何修改

网络 yum 源配置文件位于 /etc/yum.repos.d/ 目录下,文件扩展名为".repo"(只要扩展名为 ".repo" 的文件都是 yum 源的配置文件)。

本地yum源配置

在无法联网的情况下,yum 可以考虑用本地光盘(或安装映像文件)作为 yum 源。

Linux 系统安装映像文件中就含有常用的 RPM 包,我们可以使用压缩文件打开映像文件(iso文件),进入其 Packages 子目录,如图 1 所示:

可以看到,该子目录下含有几乎所有常用的 RPM 包,因此使用系统安装映像作为本地 yum 源没有任何问题。

在 /etc/yum.repos.d/ 目录下有一个 CentOS-Media.repo 文件,此文件就是以本地光盘作为 yum 源的模板文件,只需进行简单的修改即可,步骤如下:

# 创建cdrom目录,作为光盘的挂载点
[root@localhost ~]# mkdir /mnt/cdrom
# mount 命令用于挂载Linux系统外的文件
# 我的镜像文件放在/root/iso 目录下
[root@localhost ~]# mount -o loop /root/iso/CentOS-7-x86_64-Everything-2009.iso /mnt/cdrom
mount: block device/dev/srO is write-protected, mounting read-only

修改yum源,将源指向本地,然后备份原有的yum源配置文件

cd /etc/yum.repos.d/
rename .repo .repo.bak *
vi CentOS-Local.repo

写入如下配置

[base]
name=CentOS-Local
baseurl=file:///mnt/cdrom
gpgcheck=1
enabled=1   
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

清除yum缓存

yum clean all

列出可用的yum源

yum repolist

安装http

yum install -y httpd

开启httpd,关闭防火墙

systemctl start httpd.service
systemctl stop firewalld.service    # 停止 firewall
systemctl disable firewalld.service #禁止firewall开机启动

将yum源配置到Apache Server中

cp -r /mnt/cdrom /var/www/html/CentOS-7

取消之前挂载的镜像

umount /mnt/cdrom

在浏览器中访问 端口号/CentOS-7,显示如下即成功

让其他需要安装rpm包的服务器指向这个yum源

[base]
name=CentOS-Local
baseurl=http://192.168.184.128/CentOS-7/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

Samba配置

安装Samba

yum -y install samba samba-client samba-common

因为新增Samba用户,此用户必须是系统用户,所以先创建系统用户

创建系统用户,创建完成之后用passwd+用户名修改用户密码

useradd -m smbuser1
useradd -m smbuser2

修改用户samba密码

smbpasswd -a smbuser1
smbpasswd -a smbuser2

修改samba配置

vim /etc/samba/smb.conf 
[username]
comment = username folder
browseable = yes
writable = yes
path = /path/username #改为自己的路径
create mask = 0777
directory mask = 0777
valid users = username
public = yes
available = yes

创建目录

mkdir -p /sie/pub

修改权限

修改工作组,注释homes和printers,配置共享目录

可以用testparm检测配置文件正确

testparm

关闭防火墙

systemctl stop firewalld.service

放行端口命令:

 firewall-cmd --zone=public --add-port=6666/tcp --permanent

关闭SELinux策略组

SELINUX = disabled 关闭

SELINUX = enforcing 强制模式

SELINUX = permissive 宽容模式

vim /etc/selinux/config

开启Samba服务

systemctl start smb.service 
最后修改:2023 年 12 月 08 日
如果觉得我的文章对你有用,请随意赞赏