如何通过Samba协议在Linux和Windows系统之间实现安全的文件和打印机共享?

一.SAMBA概念

SMB(Sserver Message Block)协议实现文件共享,也称CIFS(Common Internet File System)是Windows和Linux/Unix系统之间共享文件的一种协议。

二.SAMBA核心组件

smbd:核心服务,负责处理文件和打印机的共享,管理用户身份验证和权限控制。
nmbd:名称解析服务。负责处理 ​NetBIOS 名称解析,让其他计算机能通过主机名找到你的 Samba 服务器。

三.SAMBA搭建实操

1.安装SAMBA

yum -y install samba 

通过 rpm -qa | grep samba 查看相关软件包
samba-common-4.7.1-6.el7.noarch
samba-common-libs-4.7.1-6.el7.x86_64
samba-client-libs-4.7.1-6.el7.x86_64
samba-libs-4.7.1-6.el7.x86_64
samba-4.7.1-6.el7.x86_64
samba-common-tools-4.7.1-6.el7.x86_64

2.查看SAMBA配置文件并配置

命令: cat /etc/samba/smb.conf

[global](全局设置)
    workgroup = SAMBA          # 工作组名称,默认是 SAMBA
    security = user            # 安全模式:用户认证(需要用户名密码)
    passdb backend = tdbsam    # 用户密码存储格式(tdbsam 是本地数据库)
    printing = cups            # 使用 CUPS 打印系统
    printcap name = cups       # 打印机配置由 CUPS 管理
    load printers = yes        # 自动加载 CUPS 打印机
    cups options = raw         # 打印数据直接发送(不转换格式)
[homes](用户家目录共享)
    comment = Home Directories          # 共享描述
    valid users = %S, %D%w%S           # 允许访问的用户(%S 是当前登录用户)
    browseable = No                     # 不在网络上显示共享名
    read only = No                      # 可读写(非只读)
    inherit acls = Yes                  # 继承父目录的 ACL 权限
[printers](打印机共享)
    comment = All Printers      # 共享描述
    path = /var/tmp            # 打印任务临时目录
    printable = Yes             # 允许打印
    create mask = 0600          # 创建文件的权限(仅所有者可读写)
    browseable = No            # 不在网络上显示共享名
[print$](打印机驱动共享)
    comment = Printer Drivers           # 共享描述
    path = /var/lib/samba/drivers       # 驱动存储路径
    write list = @printadmin root       # 允许写入的用户/组
    force group = @printadmin           # 强制文件属组
    create mask = 0664                  # 创建文件的权限
    directory mask = 0775               # 创建目录的权限

写入以下配置段

[samba_share]
        comment = samba service
        path = /samba/share
        guest ok = no
        writable = yes

3.创建共享目录/samba/share并创建一个文件

[root@web1 ~]# mkdir -p /samba/share
[root@web1 ~]# echo "狡猾的小子" >> /samba/share/test.txt
[root@web1 ~]# ll /samba/share/test.txt
total 4
-rw-r--r--. 1 root root 16 Oct 11 09:01 test.txt

4.创建共享用户

[root@web1 ~]# useradd samba1
[root@web1 ~]# smbpasswd -a samba1
New SMB password:
Retype new SMB password:
Added user samba1.

5.配置防火墙规则和selinux安全上下文放权

firewalld添加放行规则

[root@web1 ~]# firewall-cmd --permanent --add-service=samba
success
[root@web1 ~]# firewall-cmd --permanent --add-port=445/tcp
success
[root@web1 ~]# firewall-cmd --permanent --add-port=139/tcp
success
[root@web1 ~]# firewall-cmd --permanent --add-port=137-138/udp
success
[root@web1 ~]# firewall-cmd --reload
success

selinux上下文放权

[root@web1 ~]# semanage fcontext -a -t samba_share_t "/samba/share(/.*)?"
[root@web1 ~]# restorecon -Rv /samba/share
restorecon reset /samba/share context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:samba_share_t:s0
restorecon reset /samba/share/test.txt context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:samba_share_t:s0

6.Windows通过samba文件共享连接Linux

这里用的windows11
在这里插入图片描述

IP地址后为你配置主配配置文件的写的名称
在这里插入图片描述

填写你配置的用户与密码
在这里插入图片描述
在这里插入图片描述

7.授权对samba1用并进行读写操作

[root@web1 ~]# chown -R  samba1:samba1 /samba/share
[root@web1 ~]# ll /samba/share
total 4
-rwxr-xr-x. 1 samba1 samba1 16 Oct 11 09:01 test.txt

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

在这里插入图片描述
至此操作完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值