在VMware上利用Samba实现资源共享

一、背景

FTP协议能让主机之间的文件传输变得简单方便,但是FTP协议的本质是传输文件。

举个栗子:当客户端想修改服务器上的test.txt,需要先get test.txt将文件下载下来,修改后再put test.txt

有没有一种方式能使客户端直接修改服务器的test.txt并自动更新服务器的上test.txt?那就是资源共享

二、基本概念

(1)SMB协议:服务器消息协议,旨在解决局域网内的文件或打印机等资源共享的问题。

(2)Samba服务程序:是实现SMB协议的免费软件。

三、安装和配置Samba

1、安装Samba服务程序的软件包,

yum install samba

运行后见到Complete!就成功了

2.建立访问共享资源的账户信息。Samba服务程序的账户信息数据库要求账户必须在当前系统中已经存在(简单的说就是选择一个目前系统中已经有的用户作为访问共享资源的用户)

pdbedit -a -u bjy  //-a选项为建立Samba账户 -u选项为指定Smaba用户的名称为bjy,即选择bjy这个已经存在的用户作为访问共享资源的用户

执行了pdbedit指令之后会让你输入两次密码,这个密码可以与该用户之前登录linux时的相同,也可以不相同

3.创建用于共享资源的文件目录

mkdir /home/database        // database就是共享目录,里面放的文件和文件夹等资源用于共享
chown -Rf bjy:bjy /home/database         //将这个目录的用户和用户组修改为bjy用户下和bjy用户组下,这样可以使得bjy这个用户对database有读写的权限,方便后续操作
semanage fcontext -a -t samba_share_t /home/database            //因为其他主机要访问/home/database,即要访问家目录下面的的东西,增加SElinux安全上下文,允许访问的操作
restorecon -Rv /home/database           //让新的安全上下文立即生效

 4、设置SElinux服务与策略,使其允许通过Samba服务程序访问普通用户家目录

 5.配置Samba服务程序的配置文件

# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.[global]workgroup = MYGROUP           security = userserver string = Samba Server Version %vlog file = /var/log/samba/log.%mmax log size=50passdb backend = tdbsamprinting = cupsprintcap name = cupsload printers = yescups options = raw[homes]comment = Home Directoriesvalid users = %S, %D%w%Sbrowseable = Noread only = Noinherit acls = Yes[printers]comment = All Printerspath = /var/tmpprintable = Yescreate mask = 0600browseable = No[print$]comment = Printer Driverspath = /var/lib/samba/driverswrite list = @printadmin rootforce group = @printadmincreate mask = 0664directory mask = 0775
[database]    //这里的database是简历的共享会话名,最好和共享文件夹同名,避免混淆comment= Do not arbitrarily modify the database filepath=/home/database    //这里要按照自己的共享文件的位置进行更改public=nowritable=yes

6.重启Samba服务程序并清空防火墙

systemctl restart smb      //samba服务程序在linux系统中的名字就叫smb
systemctl enable  smb
iptables -F
iptables-save > /etc/sysconfig/iptables     //这句话是为了把防火墙当前的配置保存在文件里,使配置永久生效

四、功能验证1:Windows与linux之间共享文件

1、在windows上输入\\+linux的ip地址,点打开

2、如果是第一次使用,会让你输入用户和密码,这时候就输入3.2节所创建的用于共享资源访问的用户和密码,随后可以看见共享文件database,至于为什么用户bjy的家目录也会成为共享的文件,目前不是很清楚。另外需要注意的是,如果共享会话文件夹名更改为share,只要不改变Samba配置文件中的共享会话名(见第三节),下面这个database文件夹就还是叫database,而不会变为share。

3、在bjy和database里创建和修改文件、文件夹等,在linux上也可以同步看得见。

举个栗子:在database里新建 hhh.txt,在linux里可以看到这个文件

 五、功能验证2:Linux和linux之间资源共享

因为实验环境有限,我在一个VMWare上面开了两个centos,模拟两个linux之间的共享

其中centos1 ip地址为192.168.153.129  (视为服务器)

centos2 ip地址为192.168.153.132    (视为客户端)

1、在centos2上安装支持文件共享服务的软件包cifs-utils

yum install cifs-utils

2、按照Samba服务的用户名、密码、共享域的顺序写入一个认证文件中。

vim auth.smb    //新建一个auth.smb文件

在auth.smb中写入

username=wukong     //写入的是centos2所配置的共享账户
password=123456      //如果不小心写成了centos的共享账户或者其他七七八八的账户
domain=MYGROUP       //后面挂载的时候会被samba服务器拒绝挂载

修改认证文件的权限,仅root管理员才能够读写

chmod 600 auth.smb

3、在客户端上建立共享资源的目录/database,并把服务器共享资源的目录(/home/wukongshare)挂载在/database下。通俗一点说类似于:你和同学共享一本书(共享资源),轮到你看书时,你需要把书从同学的书架(/home/wukongshare)转放在你自己的书架(/database)上,随后你才能随时查看、改写。转放的过程就是挂载。

mkdir /datatbase   //客户端创建共享目录
vim /etc/fstab//打开文件之后写入://192.168.153.129/wukongshare /database cifs credential=/root/auth.smb 0 0

现对写入内容的各参数进行解释:

  (1) //192.168.153.129/wukongshare 是cent0s2(服务器)的ip地址和共享会话名称,不要以为/wukongshare是共享目录的绝对路径,其实这个/只是起分割作用,wukongshare是共享会话名称,在samba.conf文件中可以查询得到(见第三节)

(2)/database 是centos1(客户端)的共享目录 也是服务器共享目录的挂载点,这里是绝对路径

(3)cifs :表明使用CIFS协议进行挂载

(4)credential=/root/auth.smb:指定用于访问远程共享的凭据文件,即使用/root/auth.smb文件中存储的凭据进行身份验证。

(5)两个0 0 是默认参数

随后,对fstab里的文件进行挂载

mount -a

4、在客户端创建文件夹kkk

在服务器的wukongshare下面能看见 kkk这个文件,同理在服务器的wukongshare下删除、创建文件时,在客户端的database里也能看见

六、思考与总结

1、挂载点问题

在第三节配置时共享文件是设置的/home/database,因为是家目录下的文件,需要考虑SElinux安全上下文的限制,在第三节配置时添加了一条安全上下文。由此,实现了linux和windows的通信。

在linux与linux之间共享资源时,客户端新建了/database文件作为共享文件,因为是在根目录下,此时没有改selinux的安全上下文。但是为什么要多此一举创建两个共享目录?能否直接将将/home/database当作挂载点?

答:亲测,可以的。先利用umount    /database   解挂载

然后在vim /etc/fstab 里把挂载点改在 /home/database上。

但是此时windows无法访问/home/database这个共享目录了,这是正常的,如果能访问那就危险了。想象,如果windows和centos1共享的文件能同时被centos2看到,那windows和centos1之间还有什么隐私可言?所以我们在设置挂载点的时候,最好不用之前的共享文件。

2.auth.smb文件里面的用户名和密码是是谁的重要吗?因为挂载后发现切换其他的用户也可以实现linux与linux之间的共享

答:重要。必须使用服务器(centos2)的账户和密码,否则挂载会失败。

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

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

相关文章

关于支付接口测试点的思考

支付接口测试是一项非常重要的测试工作,以下是一些测试支付接口的建议: 测试支付流程: 测试支付流程的正确性,包括支付前、支付中和支付后的各个环节,确保支付流程的顺畅和正确。 测试支付金额: 测试支…

Python 中的 Unit testing 文件写入

在 Python 中进行单元测试时,有时候需要测试文件写入操作。为了模拟文件写入并进行单元测试,你可以使用 Python 的 unittest 模块,并结合 io.StringIO 或 tempfile 模块来模拟文件操作。 1、问题背景 在 Python 中,为 ConfigPars…

Docker下Open WebUI,Ollama的安装实践

提示一下Open WebUI与ollama的关系。后端的同学可以理解为Open WebUI等于是个Navicat,Ollama就是具体的数据库实例。 官方安装文档: 🏡 Home | Open WebUI Open WebUI官网文档翻译: 注意: 使用Docker安装Open WebU…

58. 【Android教程】音频录制:MediaRecord

在第 57 节我们使用 MediaPlayer 实现了一个 mp3 播放器,除了播放 Android 还提供了 MediaRecorder 用于录音。Android 设备基本都会有一个麦克风,通过 MediaRecorder 可以打开麦克风进行语音采集,这一节我们就来学习如何在 Android 系统上实…

深入解析C++的auto自动类型推导(二)

目录 使用auto的好处 新标准新增功能 使用auto的限制 上一篇详细讲解了使用auto关键字进行自动类型推导时的推导规则,这一篇重点讲解auto的使用以及C14、C17、C20等新标准对auto的功能完善,最后再介绍auto的使用限制。上一篇请从这里阅读:…

线程池核心原理浅析

前言 由于系统资源是有限的,为了降低资源消耗,提高系统的性能和稳定性,引入了线程池对线程进行统一的管理和监控,本文将详细讲解线程池的使用、原理。 为什么使用线程池 池化思想 线程池主要用到了池化思想,池化思想…

【计算机科学速成课】笔记一

文章目录 写在前面1.计算机的早期历史2.电子计算机3.布尔运算和逻辑门4.二进制5.算术逻辑单元-ALU6.寄存器和内存 写在前面 所有的一切源于这样一个网站——CS自学指南。 这是新手小白入门计算机科学必要了解的知识——【计算机科学速成课】[40集全/精校] - Crash Course Comp…

Dragonfly 拓扑的路由算法

Dragonfly 拓扑的路由算法 1. Dragonfly 上的路由 (1)最小路由(2)非最小路由 2. 评估3. 存在问题 (1)吞吐量限制(2)较高的中间延迟 references Dragonfly 拓扑的路由算法 John Kim, William J. Dally 等人在 2008 年的 ISCA 中提出技术驱动、高度可扩展的 Dragonfly 拓扑。而…

在做题中学习(53): 寻找旋转数组中的最小值

153. 寻找旋转排序数组中的最小值 - 力扣(LeetCode) 解法:O(logn)->很可能就是二分查找 思路:再看看题目要求,可以画出旋转之后数组中元素的大小关系: 首先,数组是具有二段性的(适配二分查…

数据库(MySQL)—— 索引

数据库(MySQL)—— 索引 什么是索引创建索引使用 CREATE INDEX 语句使用 ALTER TABLE 语句在创建表时定义索引特殊类型索引注意事项 举个例子无索引的情况有索引的情况为什么索引快索引的结构 今天我们来看看MySQL中的索引: 什么是索引 MyS…

财政部、交通运输部:推动北斗导航等新技术与交通基础设施融合

财政部、交通运输部:推动北斗导航等新技术与交通基础设施深度融合 近日,为深入贯彻落实中共中央、国务院关于加快建设交通强国、数字中国等决策部署,推进公路水路交通基础设施数字转型、智能升级、融合创新,加快发展新质生产力&a…

VisualGDB:Linux动态库项目创建、编译及库的使用

此篇接上篇 《VisualGDB:为Linux项目添加系统依赖库》,在本篇中我们重点分享一下如何基于VisualGDB 在VS中创建Linux动态库项目,如何编译及使用创建的动态库。 一、VisualGDB创建Linux动态库项目 如下,我们创建一个Linux下的动态库项目MyMath 二、编译动态库 我们稍微…

哈夫曼编码python算法实现(图片版)

一、问题: 请使用哈夫曼编码方法对给定的字符串,进行编码,以满足发送的编码总长度最小,且方便译码。“AABBCCDDEEABCDDCDBAEEAAA” 二、过程: 三、结果:

手动实现简易版RPC(四)

手动实现简易版RPC(四) 往期内容 手动实现简易版RPC(一):RPC简介及系统架构 手动实现简易版RPC(二):简单RPC框架实现 手动实现简易版RPC(三):mock数据生成 前言 接上几篇博客我们实现了最…

【6D位姿估计】FoundationPose 跑通demo 训练记录

前言 本文记录在FoundationPose中,跑通基于CAD模型为输入的demo,输出位姿信息,可视化结果。 然后分享NeRF物体重建部分的训练,以及RGBD图为输入的demo。 1、搭建环境 方案1:基于docker镜像(推荐&#xf…

重置密码之后无法ssh登录

背景描述 我这边有个服务器S,我从ServerA可以ssh上去,但是我从堡垒机B无法ssh上去;一开始以为是密码问题,手动重置密码,但是依然无法登录进去;一直提示密码错误;改了好几次密码都不行 问题原因…

5.9号模拟前端面试10问

5.9号模拟前端面试10问 1.html语义化的理解 HTML语义化是指使用具有明确含义的HTML标签来描述内容&#xff0c;而不仅仅是使用<div>和<span>等通用容器标签。语义化的HTML代码更易于阅读和维护&#xff0c;同时也有助于搜索引擎优化&#xff08;SEO&#xff09;。…

达梦数据库限制用户登录IP测试

达梦数据库创建用户时可以限制登录ip和时间段。 创建测试测试用户 create user test1 identified by Test_1234 ALLOW_IP "192.168.100.101"; 限定该用户只能通过192.168.100.101地址登录数据库 连接测试 上图可见&#xff0c;192.168.100.101客户端可以连接上19…

wish、亚马逊怎么给店铺引流?怎么运用自养号测评提高流量的转化率?

作为全球知名的跨境电商平台&#xff0c;wish、亚马逊为卖家提供了一个拓展海外市场的机会。然而&#xff0c;在wish、亚马逊平台上建立和经营一家成功的店铺需要有效的引流策略。那么&#xff0c;Wish、亚马逊怎样才能给店铺引流呢&#xff1f; 一、Wish、亚马逊怎么给店铺引…

C++学习笔记——仿函数

文章目录 仿函数——思维导图仿函数是什么仿函数的优势理解仿函数仿函数的原理举例 仿函数——思维导图 仿函数是什么 使用对象名调用operator&#xff08;&#xff09;函数看起来像是在使用函数一样&#xff0c;因此便有了仿函数的称呼&#xff1b;仿函数存在的意义是&#x…