系统集成09-Samba文件共享服务器管理

系统集成09-Samba文件共享服务器管理

1 Samba文件共享服务器搭建

Samba文件共享服务介绍

Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,SMB(Server Message Block)服务器消息块。
Samba最大的功能是可以用于Linux与windows系统直接的文件共享和打印共享,既可以用于Windows与linux之间的文件共享也可以用于linux与linux之间的文件共享。
基于客户机/服务器的协议,因而一台Samba服务器既可以充当:

  • 文件共享服务器
  • Samba客户端

Samba在windows下使用的是NetBIOS协议,要使用linux下共享出来的文件,要确认windows系统安装了NetBIOS协议。

Samba文件共享服务套件

安装SAMBA这个服务器总共需要至少三个套件,包括samba、samba-common和samba-client

  • samba:这个套件主要包含了SAMBA的主要daemon配置(smbd 及 nmbd)、SAMBA的文件档(document)、以及其它与SAMBA相关的logrotate设定文件及开机预设选项配置等;
  • samba-common:这个套件则主要提供了SAMBA的主要配置(smb.conf)、smb.conf语法检验的测试程序(testparm)等;
  • samba-client:这个套件则提供了当Linux做为SAMBAClient端时,所需要的工具指令,例如挂载SAMBA配置格式的执行档smbmount等。

Samba文件共享服务配置文件

Samba配置文件目录存放于/etc/samba,几个主要的配置文件有smb.conf、Imhost和smbpasswd

  1. smb.conf:这个是SAMBA最主要的配置文件。在较为简单的设定当中,这也是唯一的一个配置文件。该配置文件主要的设定分为两部份,分别为
    • [global]这个设定主机功能的项目
    • [sharedir]每个分享出去的目录的属性设定
  2. lmhosts:该配置的主要目的在对应NetBIOS name与该主机名称的IP。由于目前SAMBA的功能越来越强大,所以通常只要一启动SAMBA时,它就能自己获取LAN里面的相关计算机的NetBIOS name对应IP的信息,因此该配置通常可以不用设定
  3. smbpasswd:是SAMBA存放使用者密码对应表文件。当设定的SAMBA服务器需要使用者输入账号与密码后才能登入的状态时,使用者的密码存放于该文件

smb.conf配置文件详解

image-20230506161843953

Samba文件共享服务常用命令

Samba服务器常用命令包括如下:

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

管理Samba服务、端口、开机启动项

Samba服务安装后,设置Samba服务为开机启动,并启动Samba服务,然后查看其监听端口状态

  1. 设置Samba为开机启动:

    systemctl enable smb
    
  2. 启动Samba服务:

    systemctl start smb
    
  3. 查看Samba服务运行状态:

    systemctl status smb
    
  4. 查看端口监听状态:

    netstat -lantp | grep 139
    netstat –lantp | grep 445
    

2 Samba文件共享服务器用户和权限设置

根据要求添加用户

  1. 创建openEuler用户smb,不创建用户home目录和无shell登录权限

    useradd smb –M–s /sbin/nologin
    
  2. 设置smb用户通过Samba服务器登录,并设置密码

    smbpasswd –a smb
    

准备共享文件与设置文件访问权限

  1. 创建共享目录share和smb

    mkdir /var/share/var/smb
    
  2. 更改共享目录share和smb的权限为所有人有所有权限:

    chmod 777 /var/share/var/smb
    
  3. 更改共享目录的smb的属主为smb

    chown smb:smb/var/smb
    

配置Samba共享配置

编辑Samba配置文件smb.conf,客户端可用通过匿名访问share目录,访问smb目录需要通过用户认证才能访问,两个文件都用读写权限

  • 编辑[global]配置使用户可以通过匿名访问,添加字段:

    map to guest=Bad User
    
  • 新建[share]访问目录,设置其权限

    [share]
    	comment = share
    	path = /var/share
    	guest ok = yes
    	browseable = yes
    	writeable = yes
    
    [smb]
    	comment = smb
    	path = /var/smb
    	write list = smb
    	broweable = yes
    	writable = yes
    	read list = smb
    	valid users = smb
    	create mask = 0777
    

测试Samba服务器可成功访问

在window系统通过文件共享的方式访问Samba服务器,连接共享文件服务器后可以成功创建文件

  • •通过\SambaIP\share访问目录,无需登录认证,并且可以创建和删除文件夹或文件。

  • 通过\SambaIP\smb访问目录,需要提供smb用户认证信息后,才能打开文件,并且可以成功在目录smb中创建文件夹或文件

3 Samba服务器运维与故障排除

使用定时任务管理文件

Samba文件共享服务器的共享数据,可以用过设置定时任务每天备份数据。使用Shell脚本与定时周期任务crontab设置对share目录的数据归档备份到smb目录

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

#!/bin/sh
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天以上的备份数据

为脚本设置可以执行权限:

chmod +x backup.sh

设置周期执行任务,使用crontab命名编辑周期执行任务,执行计划为每天22点0执行备份脚本backup.sh一次,备份数据到smb目录,并保存文件名为当天时间

crontab –e 
0 22 * * * /root/backup.sh

完成后,查看备份任务:crontab –l

posted @ 2023-05-06 16:36  Qurare  阅读(209)  评论(0编辑  收藏  举报