Linux基础服务3——samba

news2025/2/24 18:13:30

文章目录

  • 一、基本了解
    • 1.1 服务安装
    • 1.2 服务进程和端口
    • 1.3 samba用户
    • 1.4 配置文件
      • 1.4.1 主配置文件
      • 1.4.2 配置文件参数
    • 1.5 安全级别
  • 二、访问samba
    • 2.1 参数测试
    • 2.2 交互式访问
    • 2.3 挂载访问
      • 2.3.1 临时挂载
      • 2.3.2 永久挂载
    • 2.4 配置用户认证共享
    • 2.5 匿名共享

一、基本了解

什么是samba?

  1. samba与nfs作用相同,也是网络文件系统,还有一个是ftp。
  2. samba能够在任何支持SMB协议的主机之间共享文件的一种实现,也包括windows,弥补了nfs的弊端。
  3. SMB协议是C/S型协议,一种在局域网上共享文件和打印机的一种通信协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。

1.1 服务安装

1.服务端安装。

yum -y install samba*

2.客户端安装。

 yum -y install samba-client

3.服务端关闭防火墙和selinux,并启动服务。

systemctl  stop firewalld
systemctl  disable firewalld
setenforce 0

systemctl start smb nmb

4.客户都安关闭防火墙和selinux。

systemctl  stop firewalld
systemctl  disable firewalld
setenforce 0

1.2 服务进程和端口

进程作用端口
nmbd提供基于NetBIOS主机名称的解析。139/tcp,445/tcp
smbd提供对服务器中文件、打印资源的共享访问。137/udp,138/udp
winbindd + ldap对应Windows AD活动目录,现已淘汰使用。

1.3 samba用户

账户密码
samba服务端系统用户Samba服务单独设置密码,与系统用户登录密码是单独分开的。
通过smbpasswd -a USERNAME命令设置
smbpasswd命令参数释义
-a Sys_User添加系统用户为samba用户并为其设置密码
-d禁用用户帐号
-e启用用户帐号
-x删除用户帐号

1.服务端创建samba账户tom,此时的tom账户就是服务器系统账户。

useradd -r -M -s /sbin/nologin tom

在这里插入图片描述
2.给samba用户设置密码,注意该密码与服务器登录密码不同。
在这里插入图片描述
3.登录。

在这里插入图片描述
在这里插入图片描述

1.4 配置文件

  • 配置文件地址:/etc/samba/smb.conf,为主配置文件。

1.4.1 主配置文件

配置文件三大组成作用
[global]全局配置,此处的设置项对整个samba服务器都有效
[homes]宿主机目录共享设置,此处用来设置Linux用户的默认共享,对应用户的宿主目录。
当用户访问服务器中与自己用户名同名的共享目录时,通过验证后将会自动映射到该用户的宿主目录中
[printers]打印机共享设置,一般不用。

在这里插入图片描述

1.testparm命令检查配置文件是否有语法错误,以及显示最终生效的配置,ok说明没有语法错误。
在这里插入图片描述

1.4.2 配置文件参数

参数释义
workgroup表示设置工作组名称
server string表示描述samba服务器
security表示设置安全级别,其值可为share、user、server、domain
passdb backend表示设置共享帐户文件的类型,其值可为tdbsam(tdb数据库文件)、ldapsam(LDAP目录认证)、smbpasswd(兼容旧版本samba密码文件)
comment表示设置对应共享目录的注释,说明信息,即文件共享名
browseable表示设置共享是否可见
writable表示设置目录是否可写
path表示共享目录的路径
guest ok表示设置是否所有人均可访问共享目录
public表示设置是否允许匿名用户访问
write list表示设置允许写的用户和组,组要用@表示,例如 write list = root,@root
valid users设置可以访问的用户和组,例如 valid users = root,@root
hosts deny设置拒绝哪台主机访问,例如 hosts deny = 192.168.72.1
hosts allow设置允许哪台主机访问,例如 hosts allow = 192.168.72.2
printable表示设置是否为打印机

1.5 安全级别

  • Samba服务器的安全级别有三个,分别是user,server,domain
  • 以前的samba版本支持的安全级别有四个,分别是share,user,server,domain.
  • share是用来设置匿名访问的,但现在的版本已经不支持share了,但是还是可以实现匿名访问的,只是配置方式变了。
安全级别作用
user基于本地的验证
server由另一台指定的服务器对用户身份进行认证
domain由域控进行身份验证

二、访问samba

2.1 参数测试

1.服务端创建系统用户qingjun,并设置远程访问共享文件夹时的登录密码。

useradd qingjun
smbpasswd -a qingjun

2.测试配置文件参数browseable参数。不添加该参数时,客户端查看时会显示出共享目录。
在这里插入图片描述
在这里插入图片描述
3.添加该参数时,则不显示共享目录。

在这里插入图片描述

2.2 交互式访问

1.客户端查看配置信息,指定服务端系统用户查看。

smbclient -L 192.168.130.160 -U qingjun

在这里插入图片描述

2.客户端命令访问。

smbclient //192.168.130.160/qingjun -U qingjun

在这里插入图片描述

3.使用?查看操作命令。
在这里插入图片描述
4.客户端创建目录111,服务端查看。
在这里插入图片描述

2.3 挂载访问

2.3.1 临时挂载

1.将服务端的qingjun用户家目录目录挂载到客户端本地的/opt目录。

mount -t cifs //192.168.130.160/qingjun /opt -o username=qingjun,password=citms

在这里插入图片描述
2.客户端/opt目录下创建文件baimu,服务端查看效果。

在这里插入图片描述

2.3.2 永久挂载

1.将服务端的qingjun用户家目录挂载到客户端本地的/opt/111目录。

//192.168.130.160/qingjun /opt/111 cifs defaults,username=qingjun,password=citms 0 0

mount -a

在这里插入图片描述
在这里插入图片描述

2.查看挂载效果。已将服务端的/home/qingjun目录下的内容挂载到客户端的/opt/111目录下。
在这里插入图片描述

2.4 配置用户认证共享

  • 使用上面方式存在一定安全问题,用户会知道系统用户,这是非常不安全的,所以这时可以将服务端上的系统用户映射成一个不存在的假用户,客户端使用假用户访问。

1.此时服务端存在系统用户qingjun。
在这里插入图片描述
2.创建/etc/samba/smbusers文件,将左边的系统用户映射成右边不存在的假用户。
在这里插入图片描述
3.修改配置文件,指定刚才创建的文件,并配置共享目录。
在这里插入图片描述

4.创建共享目录,修改属主属组。
在这里插入图片描述
5.重启服务。

 systemctl restart smb nmb

6.客户端使用假用户查看共享资源。

smbclient -L 192.168.130.160 -U 999

在这里插入图片描述
7.客户端挂载。

vim /etc/fstab
//192.168.130.160/beijing /opt cifs defaults,username=999,password=citms 0 0

##############################################
mount -a

在这里插入图片描述

8.验证效果。此时客户端上显示的文件属主属组为1000普通用户创建,而服务端显示的文件属主属组为qingjun用户。
在这里插入图片描述

2.5 匿名共享

  • 以上方式存在密码泄露问题,这种情况下可以使用匿名共享,不输入密码直接挂载访问。

1.创建共享目录/opt/baimu1,修改目录权限为777。
在这里插入图片描述
2.修改配置文件,指定使用BadUser用户访问,配置共享策略。
在这里插入图片描述
3.重启服务。

systemctl  restart smb nmb

4.在客户机查看共享资源。
在这里插入图片描述
5.客户端挂载。

vim /etc/fstab 
//192.168.130.160/wuhan /opt cifs defaults,username=BadUser 0 0

#######################################
mount -a

在这里插入图片描述
6.验证效果。
在这里插入图片描述
7.windows本地访问。
在这里插入图片描述

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

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

相关文章

VS Code基于服务器中的docker的开发环境配置

VS Code基于服务器中的docker的开发环境配置 基于Dev Containers插件基于Jump Machine(跳板机)服务器通过ssh连接docker容器VS Code配置ssh config文件连接docker容器 基于Dev Containers插件 当然可以在vscode中直接下载Dev Containers插件&#xff0c…

表上作业法一般流程(最小元素法、闭合回路法、位势法)

目录 一、列出物资调运平衡表和运价表 二、编制初始调运方案 三、初始方案的检验与调整 1)闭合回路法 2)位势法 3)调整调运方案 表上作业法一般步骤: ①列出调运物资的供需(产销)平衡表及运价表; ②按最小元素…

mediapipe 谷歌高效ML框架-图像识别、人脸检测、人体关键点检测、手部关键点检测

参考: https://github.com/google/mediapipe https://developers.google.com/mediapipe/solutions/guide 框架也支持cv、nlp、audio等项目,速度很快: 1、图形识别 参考:https://developers.google.com/mediapipe/solutions/vi…

05.内存管理:动态申请和释放内存

动态分配内存,进行内存管理 参考: 伙伴算法原理简介 linux 0.11源码 本文主要针对Linux0.11的malloc和free进行分析。是一种类似伙伴系统的内存管理方法,不过伙伴系统的内存通常是申请大于一页的内存,但是在该内核版本的内存管理&#xff0c…

剑指 Offer 68 - I. 二叉搜索树的最近公共祖先 / LeetCode 235. 二叉搜索树的最近公共祖先(二叉搜索树性质,搜索与回溯)

题目: 链接:剑指 Offer 68 - I. 二叉搜索树的最近公共祖先;LeetCode 235. 二叉搜索树的最近公共祖先 难度:中等 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对…

redis存储原理与数据模型学习笔记

目录 1 redis线程模型1.1 线程组成1.2 redis命令处理是单线程 2 redis db 存储分析2.1 先了解代码server.hdict.h 2.2 从kv存储分析2.3 负载因子2.4 渐进式rehash机制数据访问scan 3 数据模型分析以zset为例跳表 1 redis线程模型 1.1 线程组成 redis-server 命令处理 网络事件…

Nerf论文前后介绍以及今后方向(2020年各个方向工作论文分析) NEURAL VOLUME RENDERING:NERF AND BEYOND

你好! 这里是“出门吃三碗饭”本人, 本文章接下来将介绍2020年对Nerf工作的一篇总结论文NEURAL VOLUME RENDERING:NERF AND BEYOND,论文作者是佐治亚理工学院的Frank Dellaert同学和 MIT的Lin Yen-Chen同学,非常感谢两位大佬的总结…

序列化和反序列化的认识【protobuf、json、xml】

1. 什么是序列化与反序列化? 程序员在编写应用程序的时候往往需要将程序的某些数据存储在连续的内存中,然后将其写入文件或是将其传输到网络中的另一台计算机上以实现通讯。这个将程序数据转换成能被存储并传输的格式的过程被称为序列化(seri…

C++ array (STL array) 序列容器

文章目录 1 类模板2 begin()/end() 和 cbegin()/cend()3 cbegin() 和 cend()4 rbegin()/rend() 和 crbegin()/crend()5 访问array容器中单个元素参考 1 类模板 array 容器以类模板的形式定义在 头文件,并位于命名空间 std 中,如下所示: nam…

一、约束编程简介(Constraints Programming)

文章目录 1、约束编程求解器2、值域传播器THE END 1、约束编程求解器 \qquad 约束编程是一种编程范式,旨在解决那些需要满足一系列约束条件的问题。在约束编程中,问题被定义为一组变量和约束条件,而不是指定解决问题的算法步骤。通过定义变量…

XXE漏洞复现步骤

0X00XXE注入定义 XXE注入,即XML External Entity,XML外部实体注入。通过 XML 实体,”SYSTEM”关键词导致 XML 解析器可以从本地文件或者远程 URI 中读取数据。所以攻击者可以通过 XML 实体传递自己构造的恶意值,是处理程序解析它…

Nginx-负载均衡详解

本文已收录于专栏 《中间件合集》 目录 概念说明什么是Nginx什么是负载均衡 功能介绍配置过程1.修改nginx配置文件添加服务组修改HTTP模块 2.保存配置文件3.重启配置文件4.查看配置文件是否重启成功5.还可以配置其他策略轮询权重最少连接数 常用命令总结提升 概念说明 了解ngi…

MySQL:环境安装和数据库基础

环境安装 说明: • 安装与卸载中,用户全部切换成为root,⼀旦 安装,普通用户能使⽤的 • 初期练习,mysql不进行用户管理,全部使⽤root进行,尽快适应mysql语句,后⾯学了用户管 理&a…

实例讲解,一文弄懂workqueue和waitqueue

本期主题: 讲清workqueue和waitqueu: 从中断讲起waitqueue是什么workqueue总结 往期链接: linux设备驱动中的并发linux设备驱动中的编译乱序和执行乱序linux设备驱动之内核模块linux字符驱动linux字符驱动之ioctl部分linux字符驱动之read、…

数据结构07:查找[C++][朴素二叉排序树BST]

图源:文心一言 考研笔记整理8k字,小白友好、代码可跑,请小伙伴放心食用~~🥝🥝 第1版:查资料、写BUG、画导图、画配图~🧩🧩 参考用书:王道考研《2024年 数据结构考研复习…

【MATLAB第45期】基于MATLAB的深度学习SqueezeNet卷积神经网络混凝土裂纹图像识别预测模型

【MATLAB第45期】基于MATLAB的深度学习SqueezeNet卷积神经网络混凝土裂纹图像识别预测模型 引言 该文章展示如何微调名为SqueezeNet的预训练深度卷积网络,以执行裂纹图像分类预测。并使用一种称为Grad-CAM的技术来解释和分析分类输出。文章使用L.Zhang介绍的混凝土…

C++初阶之C++入门最全详解

C入门 1. C关键字(C98)2. 命名空间2.1 命名空间定义2.2 命名空间使用 3. C输入&输出4. 缺省参数4.1 缺省参数概念4.2 缺省参数分类 5. 函数重载5.1 函数重载概念5.1.1 参数类型不同5.1.2 参数个数不同5.1.3 参数类型顺序不同 5.2 C支持函数重载的原理…

Spring Cloud Alibaba Seata(二)

目录 一、Seata 1、Seata-AT模式 1.1、具体案例 1.2、通过Seata的AT模式解决分布式事务 2、Seata-XA模式 3、Seata-TCC模式 4、Seata-SAGA模式 一、Seata 1、Seata-AT模式 概念:AT模式是一种无侵入的分布式事务解决方案,在 AT 模式下&#xff0c…

git修改默认主分支main为master和设置git默认创建的项目默认分支都为master

文章目录 前言一、设置新建仓库默认分支为master1.点击GitHub右上角的头像2. 选中settings(设置)3.点击Repositories(存储库)4.更改main为master后点击update 二、设置已建仓库的默认分支为master1.找到你要改的项目点击settings&…

STL序列式容器的概念

文章目录 1 迭代器2 什么是序列式容器3 序列式容器容器中常见的函数成员参考 1 迭代器 迭代器和C指针非常类似,它可以是需要的任意类型,通过迭代器可以指向容器中的某个元素,如果需要,还可以对该元素进行读写操作。 迭代器类别 …