首页 > 系统相关 >【Linux】---Samba服务

【Linux】---Samba服务

时间:2024-04-10 10:59:16浏览次数:27  
标签:samba appsrv public --- Samba Linux 共享 root smb

Samba服务

1. SMB协议:

SMB(Server Message Block)协议是微软和英特尔联合制定的协议,主要作为微软网络的通信协议(可以将它看作局域网中的文件和打印共享协议)。SMB协议工作于会话层表示层和一小部分的应用层,它使用了NetBIOS的应用程序接口(API)。另外,它是一个开放性的协议,允许协议扩展(这使得它变得庞大而复杂)。
为了让 Windows 和 Linux 计算机之间能相互访问,最好的办法是在 Limnux 中安装支持SMB 协议的软件,将SMB 协议搬到Linux 系统上使用,而samba 就是这样的一款软件。samba 采用客户机/服务器模式,我们可以在 Linux中架设 samba 服务器,实现 Windows客户机对 Linux 服务器的访问。例如,访问smaba服务器上的文件和打印机等。
Ps:SMB 最初设计是在 NetBIOS 协议上运行的,而 NetBIOS 本身运行在 TCP/IP 协议上( Windows 2000 引入了 SMB 直接在 TCP/IP 上运行的功能)。因此,通过“NetBIOS overTCP/IP”使用 samba服务,不但可以和局域网,而且可以和互联网上众多的计算机共享资源,因为互联网上的主机使用的通信协议都是 TCP/IP。

2. Samba相关进程:

samba 服务由两个进程组成,分别是nmbd 和smbd。
nmbd:其功能是进行 NetBIOS 名称解析(将 NetBIOS 名解析为PP地址),并提供浏览服务,显示网络上的共享资源列表。
smbd:其功能是用来管理 samba 服务器上的共享目录、打印机等,还负责用户权限设置和身份验证。

服务程序:smb.service
配置文件:/etc/samba/smb.conf

3. Samba功能:

文件和打印机共享:文件和打印机共享是 samba 的主要功能,通过 smbd 进程实现。
身份验证和权限设置:samba 通过 smbd 进程实现身份验证和权限设置,通过加密方式保护共享的文件和打印机。
名称解析:samba 通过 nmbd 进程搭建 NBNS(NetBIOS Name Service),提供名称解析,将计算机的 NetBIOS 名解析为 地址。浏览服务:在局域网中,samba服务器作为本地主浏览服务器,保存着可用资源列表,可为客户端访问Windows网上邻居提供浏览列表(包括共享目录、打印机等资源)。

4. 配置文件参数:

[global]#全局配置
workgroup = SAMBA #工作组名称
security = user #安全验证的方式。需验证来访问主机提供的口令才可以访问
security = share #来访主机无需验证口令;比较方便,但不安全
security = server #使用独立的远程主机验证来访主机提供的口令
security =domain #使用域控制器进行身份验证
passdb backend =tdbsam #定义后台的类型,共有三种。第一中:创建数据库文件并使用pdbedit命令建立Samba服务程序的用户
passdb backend =smbpasswd #使用smbpasswd命令为系统用户Samba服务程序的密码
passdb backend = ldapsam #ldapsam:基于LDAP服务进行账户验证
load printers = yes #设置在Samba服务启动时是否共享打印机设备
cups options = raw #打印机的选项

[homes]#共享参数
comment = Home Directories #描述信息
browseable = No #指定共享目录是否在“网上邻居”中可见
read only = No #指定共享目录是否仅读
browseable = No #在配置文件中的共享文件下敲这个命令,只有的通过samba服务共享当前文件是否允许可见。其他的非当前共享文件不影响本身效果

printers #打印机共享参数

Share Definitions 共享服务的定义

1.设置共享名         
格式:
	【共享名】
2.共享资源描述     
格式:
	comment= 备注信息
3.共享路径             
格式:
	path=绝对地址路径
4.设置匿名访问       
格式:
	public =yes //允许匿名当访问
	public =no  //不允许匿名当访问
5.设置访问用户
格式:
	valid users = 用户名
	valid users = @组名
6.设置目录只读
格式:
	read only = yes  //只读
	read only = no    //读写
7.设置过滤主机
格式:
	hosts allow = 192.168.10.   server.abc.com   //允许来自192.168.10.0或server.abc.com的访问者访问Samba服务器资源 
	hosts deny = 192.168.10.   server.abc.com    //拒绝来自192.168.10.0或server.abc.com的访问者访问Samba服务器资源
8.设置目录可写
格式:
	writable = yes  //读写
	writable = no    //只读
9.设置目录只允许部分用户或组读写
格式:
	writable  list =  用户名 //允许该用户读写
	writable  list =  @组    //允许该组读写
10.[home]为特殊共享目录,表示用户主目录。[printers]表示共享打印机

5. 配置实例:

1.创建samba共享,本地目录为/data/share1,要求:共享名为share1。仅允许zsuser用户能上传文件。
2.创建samba共享,本地目录为/data/public,要求:共享名为public。允许匿名访问。所有用户都能上传文件。

安装samba服务:
[root@appsrv ~]# yum install samba samba-client-libs.i686 -y

创建共享文件夹,设置权限
[root@appsrv ~]# mkdir /data/share1 -p
[root@appsrv ~]# mkdir /data/public
[root@appsrv ~]# chmod -R 777 /data/

创建samba账户
[root@appsrv ~]# useradd zsuser
[root@appsrv ~]# smbpasswd -a zsuser
New SMB password:
Retype new SMB password:
Added user zsuser.

编辑samba服务配置文件:
[root@appsrv ~]# vim /etc/samba/smb.conf
[share1]
		path = /data/share1
    	write list = zsuser
[public]
    	path = /data/public
    	writeable = yes
    	public = yes
[root@appsrv ~]# systemctl restart smb.service
[root@appsrv ~]# setenforce 0

客户端测试:
[root@appsrv ~]# touch test.txt
[root@appsrv ~]# smbclient //127.0.0.1/share1 -U zsuser
Enter SAMBA\zsuser's password: 
Try "help" to get a list of possible commands.
smb: \> put test.txt
putting file test.txt as \test.txt (0.0 kb/s) (average 0.0 kb/s)
smb: \> ls
  .                                   D        0  Tue Oct 24 03:57:55 2023
  ..                                  D        0  Tue Oct 24 03:54:43 2023
  test.txt                            A        0  Tue Oct 24 03:57:55 2023

		17811456 blocks of size 1024. 13328568 blocks available
smb: \> 

[root@appsrv ~]# smbclient //127.0.0.1/public
Enter SAMBA\root's password: 
Anonymous login successful
Try "help" to get a list of possible commands.
smb: \> ls
  .                                   D        0  Tue Oct 24 03:54:43 2023
  ..                                  D        0  Tue Oct 24 03:54:43 2023

		17811456 blocks of size 1024. 13328452 blocks available
: \> put test.txt 
putting file test.txt as \test.txt (0.0 kb/s) (average 0.0 kb/s)
smb: \> ls
  .                                   D        0  Tue Oct 24 03:59:18 2023
  ..                                  D        0  Tue Oct 24 03:54:43 2023
  test.txt                            A        0  Tue Oct 24 03:59:18 2023

		17811456 blocks of size 1024. 13328452 blocks available
smb: \> 

标签:samba,appsrv,public,---,Samba,Linux,共享,root,smb
From: https://blog.csdn.net/Jackson0630/article/details/137587815

相关文章

  • Java面试题-13Spring
    1、事务管理spring事务分为编程式事务和声明式事务Spring事务管理器的行为的重要组成部分。下面是对这些属性的简要解释:1.**value**:用于指定事务管理器的名称。如果应用中只有一个事务管理器,通常可以省略该属性。2.**propagation**:指定事务的传播机制,即在多个事务方法相互调......
  • 2-54. 制作 CropManager 实现撒种子的事件
    创建CropManager修改CursorManager修改EventHandler修改GridMapManager修改CropManager两个场景添加CropParent在01.Field和02.Home这两个场景下面都添加CropParent对象,并给它添加CropParent标签修改CropManager调整农作物的锚点项目相关......
  • Shell的-n -z -s
    在Shell脚本中,-n和-z是用于条件测试的选项,它们通常出现在test命令或[...]结构中,用来判断字符串是否为空。-zSTRING:当字符串STRING的长度为零(即字符串为空)时,表达式返回true(真)。在条件语句中,你可以这样使用它来检查一个变量是否为空:if[-z"$variable"];then......
  • C++U4新-第06课-二分答案
    二分答案学习目标 先学习单调性,二分查找的单调性意思二分答案单调性 二分答案的思路  [【二分答案】-砍树] #include<iostream>usingnamespacestd;intmain(){intn,m;inttree[1000005];cin>>n>>m;for(inti=1;i<=n;i......
  • 洛谷题单指南-数学基础问题-P2926 [USACO08DEC] Patting Heads S
    原题链接:https://www.luogu.com.cn/problem/P2926题意解读:有n个数,计算每个数能整除其他数的个数。解题思路:a[100005]记录所有的数,h[1000005]记录所有数的个数,cnt[1000005]记录所有数能整除其他数的个数只需要读入a数组,同时更新h[a[i]]++再依次从小到大遍历h的下标每一个数i,如......
  • 使用YOLO V8-pose 报错:AttributeError: module ‘torch‘ has no attribute ‘_six‘
    上述为按照yolov8pose官方教程写的代码。使用了python3.7,以及对应的torch版本如下后,报错。AttributeError:module‘torch‘hasnoattribute‘_six‘ 解决方法:更换了虚拟环境,重新安装yltralytics.新环境: 现在可以正常运行:......
  • C++ - VS2019配置Qt开发环境
    下面正式介绍VS2019+Qt5.14.2开发环境的配置,其它版本类似,安装步骤如下:注意:首先自行安装好vs2019和qt5.14.2再执行以下步骤1、VisualStudio2019配置Qt环境(1)插件下载安装点击VS上方的菜单栏,选择“拓展—>管理拓展”进入管理拓展对话框,在右上方搜索qt,出现搜索结果后,选择......
  • Shell - [11] 开源Apache Zookeeper集群启停脚本
     一、集群角色部署当前有Zookeeper集群如下主机名ctos79-01ctos79-02ctos79-03Zookeeper○○○ 二、脚本使用 三、脚本内容#!/bin/bash#定义ZooKeeper服务器列表SERVERS=("ctos79-01""ctos79-02""ctos79-03")#定义ZooKeeper安装路径INSTALL_......
  • 《疯传》为什么某些思想几乎能够一夜流行,而另一些却石沉大海? - 三余书屋 3ysw.net
    疯传:让你的产品、思想、行为像病毒一样入侵你好,今天我们解读的书是《疯传》,这本书探讨了怎样的营销才能达到病毒般传播的效果。可能有些人会问,我又不是市场营销专业的,为什么我需要学习营销呢?实际上,掌握营销技能在现代社会里对每个人来说都是非常必要的。在这个信息泛滥的时代......
  • 探索数据背后的强劲引擎MySQL(2):Linux安装MySQL
    该文章Github地址:https://github.com/AntonyCheng/mysql-notes【有条件的情况下推荐直接访问GitHub以获取最新的代码更新】在此介绍一下作者开源的SpringBoot项目初始化模板(Github仓库地址:https://github.com/AntonyCheng/spring-boot-init-template【有条件的情况下推荐......