[Linux]在Ubuntu中安装samba并且正确配置(详细)

news2024/11/16 9:40:48

一、我们为什么需要samba服务

        samba是一种实现windows和linux包括macos文件共享的套件。它能让我们像访问自己的磁盘一样去访问别的系统的文件。可以看得出来这种一种快速并且高效的文件传输协议。看到这里,大家可能会有些疑问。向linux传输文件,我们可以使用SFTP服务,为什么我们还需要安装一种单独的协议来传输文件?下面我们就来讲讲相比SFTP,samba的优势。首先就是,在局域网中,我们想要访问linux中的文件或者想要上传文件,我们确实可以使用SFTP,但是这种操作方式可能会依赖一些图形化的软件,并且在操作上有没有原本的文件管理器中操作方便。在此,我们引入samba,samba能将linux的文件目录直接映射到windows,在windows中我们可以像访问自己的磁盘一样访问这些文件或者目录,其中的操作都是和windows互通,我们也可以使用windows中的软件对文件进行操作,比如我们可以使用windows的解压软件去解压linux下的文件。其次就是,使用samba我们可以直接使用windows的IDE去打开linux中的工程,在linux是无图形化或者图形化适配比较差时,能够大大提高我们的开发效率。然后,因为samba能够直接将文件夹映射出来同时也有利于在局域网环境下大家协同开发一个项目。如此可见,samba有如此多优秀的地方,那我们的SFTP不就一无是处了吗?当然不,想必大家应该都有注意到,我上面提到了很多都是在局域网的环境下,是的,在近距离传输文件时我们确实可以使用samba,但是一旦涉及到远距离传输,可能samba就没有那么合适了,在远距离的网络传输中,我们不仅要考虑便捷,还要考虑安全性,这两者都兼顾的想必SFTP才是首选,它基于SSH协议,有较高的安全性。当然,如果不在意安全性的问题,就可以直接使用samba。下面我们就来看一下如何在Ubuntu中安装和使用samba吧!

二、安装Samba

        前面也提到了,samba服务主要用于windows和linux之间的文件传输,所以,你需要有一台安装了linux系统的电脑或者虚拟机,下面我将使用Ubuntu的虚拟机进行演示,如果你想要在物理机或者虚拟机中安装Ubuntu,那么就可以看下面的文章:

在物理机安装Ubuntu:[Linux]如何在物理机安装Ubuntu(小白向)-CSDN博客

在虚拟机安装Ubuntu:[Linux]如何在虚拟机安装Ubuntu?(小白向)-CSDN博客

在下面的演示中,我都使用命令行进行演示。我们首先登录我们的Ubuntu:

我们使用下面的命令来更新我们的软件包源,这会让我们下载的软件包处于一个较新的版本:

sudo apt update

在更新完软件包源以后,我们就可以开始安装samba了。我们输入下面的命令来安装samba:

sudo apt install samba

在安装结束以后,我们可以使用下面的命令来查看安装:

apt list | grep samba

下面我来解释一下这条命令,apt list是为了查看已经安装的apt包,如果我们只输入apt list那么终端就会打印所有我们已经安装的包,“|”是一个管道符,用于传递参数,它可以将前面一条指令的输出当作后面一条指令的输入。grep用于在我们输入的文本中查找匹配的值,我们这里为了查找我们的文本中有没有“samba”字样。执行命令以后,我们就能发现,它输出了很多和samba相关的包,当然这其中也包括了samba本体:

这也就表示,我们的samba是安装成功的。

三、samba的基本配置

        在我们已经安装好samba以后,我们就可以来配置它了。首先,我们需要创建一个用于共享的文件夹,我们使用下面的命令创建一个文件夹在我们的用户目录下:

mkdir ~/share

这条命令会在我们的用户目录下创建一个名为“share”的文件夹。当然,大家可以根据自己目录的用途来更换别的名字。特别提醒,在创建文件夹的时候,不要加“sudo”,这会使得这个文件夹的权限非常高,高到你每一次配置或者使用这个目录你都要加sudo。这也会间接的导致一些文件访问性的问题。所以,养成习惯,在操作自己用户目录的时候不要加“sudo”。

在目录创建完成以后,我们需要赋予这个目录权限,如果你是一位小白,你不知道权限应该怎么合理分配,那就跟着我写就行了。使用下面的命令配置这个文件夹和用户文件夹的权限:

chmod -R 777 /home/chulingxiao/share /home/chulingxiao

这里的chmod是我们的权限配置命令,-R表示递归,也就是说在这个目录的下面一级目录或者文件都被赋予这个权限,777是权限的表现形式,这里我们赋予了自己,用户组,其他人这个文件夹下文件或者目录的读,写,执行权限。换而言之,这个文件夹已经被开放出来了,谁都可以看,谁都可以修改。如果你初学linux这样给权限是没有问题的,但是,在实际工作和项目中,一定要严格管控每一个文件的权限。最后的“/home/chulingxiao/share /home/chulingxiao”就是我们目录了,大家根据自己目录的名字进行调整,这里需要注意一下,我们不仅要修改刚才我们创建的目录的权限,还要修改我们用户目录的权限,这样做也是未来避免权限问题。我们可以看到,在我们输入了上面的权限配置命令以后,我们文件夹最前面表示权限的部分已经和别的文件夹不一样了。这也就表示我们的权限配置成功了。

我们下面来讲一下samba的配置文件,samba的配置文件是被存放在了“/etc/samba/”下的一个名为“smb.conf”的文件,我们现在可以先不着急修改这个配置文件,我们需要把这个配置文件备份一份,防止我们把原本的配置文件搞坏了,输入下面的命令,将配置文件备份到当前用户目录下:

cp /etc/samba/smb.conf ~/

在备份完成以后,我们就可以打开这个配置文件了。使用下面的命令打开配置文件:

sudo nano /etc/samba/smb.conf

因为我们这里已经是对系统目录进行操作了,所以一定要加上“sudo”:

不出意外的话,打开后就是下图中的样子了,如果你打开文件以后是空白了,那你可能就需要检查一下在打开文件时有没有使用“sudo”,如果使用了“sudo”打开仍然是空白的,那你可能需要检查一下samba有没有正常安装:

我们将这个配置文件滑到最下面:

在最下面,我们插入下面这些配置信息,后面我会逐一解释:

[Ubuntu_22.04]
        comment = Samba
        path = /home/chulingxiao/share
        public = yes
        writable = yes
        available = yes
        browseable = yes
        valid users = chulingxiao

在添加好配置信息以后,我们保存并关闭配置文件。

下面我来解释一下上面我输入的这些配置信息都是什么意思:

[Ubuntu_22.04]:这是你在 Samba 中定义的共享的名称。当其他网络设备通过 SMB/CIFS 协议访问共享时,这个名称就是他们看到的共享名称。

[comment]:这是对共享的描述或注释,通常显示在客户端连接到共享时的共享列表中。它帮助用户了解共享的用途或内容。

[path]:这是共享资源在服务器上的实际文件路径。它指定了用户通过 Samba 访问的目录位置。所以大家在写路径的时候,就不能和我相同,因为我的路径是根据我的用户目录写出来的,大家根据自己刚才创建的目录进行i修改,这一步很重要。

[public]:表示该共享是否为公共共享。公共共享允许匿名用户(不输入用户名和密码)访问。如果设置为 yes,任何人都可以访问该共享。通常与 guest ok 配置项相关。

[writable]:决定该共享目录中的文件是否可写。设置为 yes 表示用户可以创建、编辑、和删除文件。如果设置为 no,则共享为只读。

[available]:表示该共享是否可用。如果设置为 no,共享将被定义,但实际上不可用,不会在客户端中显示。

[browseable]:决定该共享是否在网络邻居或文件浏览器中显示。如果设置为 yes,用户可以在网络资源浏览器中看到该共享。如果设置为 no,共享是隐藏的,但用户仍然可以通过手动输入路径来访问。

[valid users]:指定可以访问该共享的用户或用户组。这些用户必须是在 Samba 中定义的有效用户。如果一个用户不在这个列表中,他将无法访问该共享。这里大家也要根据自己的情况进行修改,上面我写的是我的用户名,大家记得改成自己的,不然可能不能访问。

当然samba的参数还有很多,后面的参数我会写在一个文档中,大家自行前往百度网盘链接进行下载。

samba相关参数文档:https://pan.baidu.com/s/1I_LR7ntUlnwQhOYp3VxVRw?pwd=clxm 

提取码:clxm

虽然samba的参数有很多,但是,将我们一开始给大家的参数正确填入配置文件samba就已经能正常工作了。

我们输入下面的命令来为samba来配置一个用户的密码,后面我们访问samba服务的时候都会用到这个密码:

sudo smbpasswd -a chulingxiao

如果是第一次为这个用户设置密码就需要加上-a,后面配置密码就不用加上-a了。如果在第一次设置一个用户的密码不加上-a的选项的话,就会在设置密码时报出错误。

这里同样的,大家要把后面的用户名替换成自己的,不然就会因为找不到这个用户而抛出一个错误。

这里我们输入密码和linux登录时输入密码一样不会回显。

我们输入下面的命令来启动samba服务,每次我们使用samba时都要保证它的服务是启动的:

sudo systemctl start smbd.service

在启动了samba的服务以后,我们可以用下面的命令来查看samba的工作状态:

sudo systemctl status smbd.service

输入查询命令以后,我们的命令栏可能已经不能输入东西了,大家按“Q”退出即可。

如上图我们可以看到,我们的samba已经处于工作状态了。

我们也可以使用下面的命令来重启samba服务:

sudo systemctl restart smbd.service

在我们每次重新设置完密码以后,我都建议大家将samba重启一下。

我们可以使用下面的命令来将samba添加为开机启动:

sudo systemctl enable smbd.service

四、samba的连接

        在我们配置并且启动samba以后,我们就可以使用网络去连接它了,我们可以使用下面的命令来查看linux系统的ip地址:

ifconfig

如果提示ifconfig命令找不到则执行“sudo apt install net-tools”

我们可以看到,现在我linux的ip地址为192.168.241.128 ,我们可以打开powershell去ping一下这个地址,测试一下通断。

我们可以看到,这里是能ping通的,说明设备的网络连接没有问题。

我们同时按“win+R”打开运行框:在运行框中输入“\\ip地址”,如下图:

前面的反斜杠不能省略。

输入完以上以后,我们回车。

在输入用户名和密码以后就可以进入以下界面了:

图中的这个文件夹就是我们共享出来的文件夹。

如果你在输入用户名和密码以后提示你连接失败没有权限,那么你需要检查你的用户文件夹权限有没有开放出来。确认权限没有问题以后,仍然提示权限不足的话,检查自己samba的配置文件中的用户名是否写对,检查密码设置是否正确。如果被提示重复连接就检查有没有打开别的连接窗口。

在成功访问到以后,我们可以右键这个文件夹,然后点击“映射网络驱动器”,在弹出的窗口中,我们可以设置映射后的盘符,设置好以后,我们点击完成即可:

在完成以后,我们可以看到这个驱动器已经映射到了我们本地:

我们在这个映射的目录中新建一个文本文档:

我们在linux端进行查看:

至此,我们samba的连接已经完成。

五、结语

        在部署了samba服务以后大大的简化了我们的文件传输。我们通过samba能够直接对linux的文件进行解压,编译项目等基本操作。samba的强大功能等待大家自己探索!

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

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

相关文章

常用网络测试工具以及解决tcp协议带来得问题

一、解决粘包问题 1.1、tcp的特点 面向字节流特点,会造成可能数据与数据发送到一块,成为粘包,数据之间不区分 1.2、拆包 因为缓冲区的大小,一次性发送的数据会进行拆分(大小不符合的时候) 就和水一样一…

vue3使用i18n实现国际化

安装vue-i18n npm install vue-i18n创建一个ts文件用于存储各种翻译 globalLang.ts的内容如下: export default {"cn": {},"en": {},"de": {},"es": {},"fr": {},"id": {},"it": {},&quo…

HDMI画面发白

这个问题困扰我很久了,今天在抖音上看到了解决方案! https://v.douyin.com/Ceie2g2s/ 量化范围:有限范围改成全范围。

Tomcat安装部署

简介 Tomcat 是由 Apache 开发的一个 Servlet 容器,实现了对 Servlet 和 JSP 的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。 简单来说,Tomcat是一个WEB应用程序的托管平台&…

关于elementui table组件 —— 竖向表格

前端模拟数据方式&#xff1a; html代码&#x1f447;&#xff1a; <template><el-table :data"tableData" style"width: 60%;margin-top:20px" stripe :show-header"false" border :row-style"rowStyle"><el-table…

培训第三十五天(容器的基础命令使用)

1、创建一个容器并同时执行echo命令 # 快速启动一个容器执行特定的一次性命令并查看输出结果&#xff0c;输出结果后容器直接退出[rootdocker ~]# docker run -it --namea0 centos:latest echo "abc"abc[rootdocker ~]# docker psCONTAINER ID IMAGE COMMAND …

FreeRTOS 快速入门(六)之互斥量

目录 一、互斥量1、基本概念2、运作机制3、死锁现象4、递归互斥量 二、优先级反转和优先级继承问题1、优先级反转问题2、优先级继承问题 三、互斥量函数1、互斥量1、创建 2、获取互斥量3、释放互斥量4、删除互斥量 一、互斥量 1、基本概念 互斥量又称互斥信号量&#xff08;本…

Vue.js学习笔记(七)使用sortablejs或el-table-draggable拖拽ElementUI的el-table表格组件

文章目录 前言一、el-table-draggable是什么&#xff1f;二、使用步骤1.安装使用2.sortablejs 总结 前言 记录 el-table-draggable 插件使用方法。 一、el-table-draggable是什么&#xff1f; el-table-draggable的存在就是为了让vue-draggable支持element-ui中的el-table组件…

Lesson 81+82 Roast beef and potatoes

Lesson 8182 Roast beef and potatoes 词汇 bath n. 洗澡&#xff0c;浴缸 搭配&#xff1a;have a bath 泡澡 相关&#xff1a;take a shower 淋浴&#xff0c;冲个澡    shower&#xff1a;花洒&#xff0c;喷头 例句&#xff1a;Bobby总是在傍晚洗澡。    Bobby alw…

基于预训练模型,进行氨基酸序列编码,用于深度学习模型构建

本团队提供生物医学领域专业的AI&#xff08;机器学习、深度学习&#xff09;技术支持服务。如果您有需求&#xff0c;请扫描文末二维码关注我们。 在对氨基酸序列数据进行深度学习模型构建时&#xff0c;首先需要将字符形式的序列数据进行编码操作。最简单的当然是One-hot编码…

【Java】/* 双向链式队列 和 循环队列 - 底层实现 */

一、链式队列 1. 使用双向链表实现队列&#xff0c;可以采用尾入&#xff0c;头出 也可以采用 头入、尾出 (LinkedList采用尾入、头出) 2. 下面代码实现的是尾入、头出&#xff1a; package bageight;/*** Created with IntelliJ IDEA.* Description:* User: tangyuxiu* Date: …

[kaggle竞赛] 毒蘑菇的二元预测

毒蘑菇的二元预测 您提供了很多关于不同二元分类任务的资源和链接&#xff0c;看起来这些都是Kaggle竞赛中的参考资料和高分解决方案。为了帮助您更好地利用这些资源&#xff0c;这里是一些关键点的总结&#xff1a; Playground Season 4 Episode 8 主要关注的竞赛: 使用银行…

2024/8/22 英语每日一段

Belgian triathlete Claire Michel ultimately said it was a virus and not bacteria from the water that made her sick after a swim. But Belgium’s Olympic committee said in a statement that it hoped “lessons will be learned” for future Olympics. “We are th…

鸿蒙(API 12 Beta3版)【使用ImageEffect编辑图片】图片开发指导

场景介绍 ImageEffect提供了一系列接口用于图像的编辑。开发者可以通过ImageEffect接口处理不同图像输入类型Pixelmap、NativeWindow、NativeBuffer或Uri&#xff0c;获得滤镜处理效果。 针对ImageEffect&#xff0c;常见的开发场景如下&#xff1a; 通过ImageEffect提供的N…

iOS 18 Beta 7测试版本体验,无新功能,修复已知bug

近日苹果公司发布了iOS 18 beta7版本&#xff0c;版本号22A5346a。那iOS 18beta7版本是否比其他的测试版要更好用呢&#xff1f;以下测试结果仅供果粉参考&#xff0c;一机一况&#xff0c;以个人实际体验为准。 一、日常使用体验 1、App响应非常快&#xff0c;动画过渡时间稍…

【高等代数笔记】线性方程组的解法(三、四、五)

1. 线性方程组的解法 由于这个视频课的分p十分抽象&#xff0c;我还是把一节完整的课学完再发表笔记吧&#xff0c;要不然太零碎了。 接上一篇文章 阶梯形方程组为 { x 1 − x 2 2 x 3 − 1 0 0 \left\{\begin{array}{l} x_{1}-x_{2}2 \\ x_{3}-1 \\ 00 \end{array}\righ…

dll错误修复工具:一键解决系统DLL错误产生的程序问题(新手入门)

dll错误修复工具&#xff0c;主要解决导致Windows系统上程序出错的各种dll相关问题。金舟DirectXDLL一键修复提供了全面的且快速的扫描功能&#xff0c;能够检测出导致程序故障的任何dll错误&#xff0c;并且一键进行修复。 一、什么是dll文件 dll是系统的动态链接库文件&…

6年赚了300亿孙悟空才是真财神!带火文旅、引发装机热潮、搅动A股....这波热度你蹭到了吗?

《黑神话&#xff1a;悟空》上线后一博主连续32小时直播&#xff0c;观看人数超3000万&#xff0c;涨粉近46万&#xff01;该主播个人收益或高达85万元&#xff01;游戏里的36个取景地中&#xff0c;山西独占27个。8月20日&#xff0c;小西天景区出售门票比去年同期增长300%。 …

前端面试题-vue框架

1. 聊聊为什么会出现 React、vue 这样的框架&#xff0c;他们的出现解决了什么问题 用户界面越来越复杂&#xff0c;框架采用声明式的写法&#xff0c;将界面的构建和数据的管理分离出来&#xff0c;大大提升开发效率和维护效率。 &#xff08;1&#xff09;原生JS实现不太方…

如何在Visio中画精准的圆弧,角度标记,弧度标记(已解决)

1、导入 “绘图工具形状” 打开 Visio--》 然后&#xff1a; 点击 绘制工具形状 之后&#xff0c; 在界面会出现 绘制工具形状的选项 如下 本人 使用圆弧 &#xff0c;弧线功能&#xff0c;然后两头增加箭头&#xff0c;实现角度标注&#xff0c;如下