Linux-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 = share
              path = /var/share
              guest ok = yes
              browseable = yes
              writeable = yes
    
    #新建 [smb] 访问目录,设置其权限
      [smb]
              comment = smb
              path = /var/smb
              write list = smb
              broweable = yes
              writeable = yes
              read list = smb
              valid users = smb
              create mask = 0777
    
    systemctl restart smb
    systemctl status smb
    
    smbclient -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天以上的备份数据
    :wq
    
    chmod +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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值