当前位置: 首页 > news >正文

Linux-Samba

文章目录

    • Samba配置
      • 服务配置

https://i-blog.csdnimg.cn/blog_migrate/58966ddd9b29aabe8841f5ec34f0d31c.gif

🏡作者主页:点击!

🤖Linux专栏:点击!

⏰️创作时间:2024年11月18日13点20分

在这里插入图片描述

Samba配置

  • Samba是一个能让 Linux 系统应用与 Microsoft 网络通讯协议的软件,SMB服务器消息块
  • 最大的功能就是可以用于 Linux 与 Windows 系统直接的文件共享和打印共享,既可以用于 Windows 与 Linux 之间的文件共享也可以用于 Linux 与 Linux 之间的文件共享
  • samba在windows下使用的是 NetBIOS协议,要使用 Linux 下共享出来的文件,确认 Windows 系统安装了 NetBIOS 协议

**三个套件:**samba、samba-common、samaba-client

  • samba:套件包括了SAMBA的主要 daemon 配置(smdb及nmbd)、SAMBA的文件档、以及其他 SAMBA 相关的 logrotate设定文件及开机预设选项配置等
    nmbd用力管理netbios-name、以及工作群组的解析,用到的协议是UDP:137、138端口
    使用TCP传输资料,TCP139、445
    netbios-name来进行查询服务器,同一个群里中必须是独一无二的
  • samba-common:这个套件则主要提供了samba的主要配置 smb.conf、smb.conf 语法校验的测试程序等
  • samba-client:这个套件则提供了当 Linux 做为 samba Client端时,所需要的工具指令
    例如:挂载 samba 配置格式的执行档 smbmount

配置文件

  • samba配置文件存放于 /etc/samba,几个主要的配置文件 smb.conf、imhost、smbpasswd
  • smb.conf:这个 samba 最主要配置文件,唯一的一个配置文件,分为两部分
    global:设定主机功能的项目
    sharedir:每个分享出去的目录的属性设定
  • lmhosts:该配置主要目的在对应 NetBIOS name 与该主机名称的IP
  • smbpasswd:是samba存放使用密码对应表文件
#smb.conf配置文件详解
[global]    #设置samba服务器的整体环境workgroup = MYGROUP    #指定工作组名称server string = Samaba Server Version    #指定主机解释说明netbios name = MYSERVER    #指定samba默认主机名hosts allow	= 127. 192.168.1. 192.168.2.    #允许访问Samba服务器IP地址范围,默认允许所有可以访问security = user    #设置安全等级,user模式需要用户验证,share模式无需验证
[homes]valid users =    #指定允许访问用户invalid users =   #指定不允许访问用户write list =    #指定写入用户read list =    #设置只读用户public list =    #是否可以匿名访问

samba常用命令

sambpasswd:设置samba用户密码。常用参数-a,增加smb用户与配置密码
smbclient:查看计算机分享出来的目录与装置。常用参数 “-L” 后面按需要查看的主机IP,-U 后面接登录的用户名
smbmount:将远程主机分享的目录挂载到 Linux 主机上,与 mount 功能类似
testparm:用于测试 samba 的设置是否正确,测试文件 smb.conf,测试无误表示 samba 服务能正常加载该配置

服务配置

dnf install -y samba samba-common samba-client    #安装软件
systemctl enable smb    #添加道开机启动
systemctl start smb    #启动smb服务
systemctl status smb    #查看状态netstat -lantp | grep 139    #查看端口监听状态
netstat -lantp | grep 445    #查看端口监听状态smbclient -L localhost    #查看服务器的共享状态,需要输入 root 用户名和密码
Uos2338341384
mkdir /var/share /var/smb    #创建共享目录和smb目录
chmod 777 /var/share /var/smb    #更改权限
chown smb:smb /var/smb    #更改smb的属主为 smb
useradd smb -M -s /sbin/nologin    #不创建家目录和无shell登录权限
smbpasswd -a smb    #设置smb用户通过 samba 服务器登录,并设置密码
admin@123
admin@123
  • # vi /etc/samba/smb.conf
    # [global] 配置使用户可以通过匿名访问,添加字段:map to guest = Bad User#新建 [share] 访问目录,设置其权限[share]comment = sharepath = /var/shareguest ok = yesbrowseable = yeswriteable = yes#新建 [smb] 访问目录,设置其权限[smb]comment = smbpath = /var/smbwrite list = smbbroweable = yeswriteable = yesread list = smbvalid users = smbcreate mask = 0777
    
    systemctl restart smb
    systemctl status smbsmbclient -L localhost    #查看服务器的共享状态,需要输入 root 用户名和密码
    Uos2338341384
    

测试 samba 服务器

  • 通过磁盘界面 \\ samba IP \ share 访问目录,无需登陆认证,并且可以创建和删除文件
  • 通过 \\ samba IP \ smb 访问目录,需要提供 smb 用户认证信息后,才能打开文件,并且可以成功在目录 smb 中创建文件夹或文件

运维

  • 设置定时任务每天备份数据,使用shell脚本与定时周期任务 crontab 设置对 share 目录的数据归档备份到 smb 目录

  • 创建数据备份脚本 /root/backup.sh

    #!/bin/bash
    mkdir /var/backup    #创建临时备份目录
    cp -r /var/share/ /var/backup    #将共享文件夹数据复制到备份目录
    tar -zcPvf /var/smb/backup$(date +%Y%m%d).tar.gz /var/backup    #打包共享目录数据到 /var/backup
    rm -rf /var/backup/    #删除临时备份目录
    find /var/smb -mtime +30 -name "*.tar.gz" -exec rm -rf {} \;    #删除30天以上的备份数据
    :wqchmod +x backup.sh    #给脚本设置执行权限crontab -e    #之后输入执行的周期
    0 22 * * * sh /root/backup.sh    #每天22点00分执行备份脚本一次,备份数据到 smb 目录,保存文件名问当天时间crontab -l    #查看周期执行的任务
    

日志

  • 欧拉系统日志默认保存 /var/log,ls 命令查看 samba 服务日志文件
  • 查看 /var/log 目录下 samba 目录的日志文件名:ls -l /var/log/samba
  • 显示最后20行日志记录:tail /var/log/samba/log.smbd -n 20
  • 查看欧拉系统日志最后20行:tail /var/log/messages

故障及解决方案

  • 防火墙问题
  • 重启samba服务
  • 检查配置错误字段 cd /etc/samba;testparm
  • 文件所属组错误:chown smb:smb /var/smb
  • 文件权限错误:chmod 777 /var/smb
http://www.lryc.cn/news/487953.html

相关文章:

  • 【Java Web】JSON 以及 JSON 转换
  • Qt 元对象系统
  • 鸿蒙实战:使用隐式Want启动Ability
  • go-zero(二) api语法和goctl应用
  • java 操作Mongodb
  • 以Java为例,实现一个简单的命令行图书管理系统,包括添加图书、删除图书、查找图书等功能。
  • [JavaWeb]微头条项目
  • Linux(CentOS)安装达梦数据库 dm8
  • 【专题】中国企业出海洞察报告暨解码全球制胜之道报告汇总PDF洞察(附原数据表)
  • [ 跨域问题 ] 前后端以及服务端 解决跨域的各种方法
  • 网络安全之信息收集-实战-2
  • 利用飞书多维表格自动发布版本
  • 深入内核讲明白Android Binder【一】
  • Photoshop(PS)——人像磨皮
  • 如何用Excel批量提取文件夹内所有文件名?两种简单方法推荐
  • YOLOv8改进,YOLOv8通过RFAConv卷积创新空间注意力和标准卷积,包括RFCAConv, RFCBAMConv,二次创新C2f结构,助力涨点
  • 【实验11】卷积神经网络(2)-基于LeNet实现手写体数字识别
  • chatgpt训练需要什么样的gpu硬件
  • Kubernetes常用命令
  • Flutter:key的作用原理(LocalKey ,GlobalKey)
  • R语言基础入门详解
  • django启动项目报错解决办法
  • 详细描述一下Elasticsearch搜索的过程?
  • Spring、SpringMVC、SpringBoot、Mybatis小结
  • .NET 9 运行时中的新增功能
  • Linux下安装mysql8.0版本
  • kvm-dmesg:从宿主机窥探虚拟机内核dmesg日志
  • 植物明星大乱斗15
  • go-zero(三) 数据库操作
  • SQL面试题——间隔连续问题