针对 SMB 共享启用回收站功能

一、SMB 共享的核心概念

  • 定义:SMB 是一种应用层协议,允许不同设备通过网络访问共享的文件、目录、打印机等资源,相当于在网络中搭建 “资源共享桥梁”。
  • 发展历程:由 IBM 于 1983 年开发,后被微软改进并命名为 CIFS(Common Internet File System),如今 SMB/CIFS 已成为跨平台共享的标准协议之一。

二、SMB 共享的工作原理

  1. 通信流程
    • 客户端向服务器发起连接请求,验证用户身份(如用户名、密码)。
    • 身份通过后,客户端可访问服务器上的共享目录,进行文件的读取、写入、删除等操作。
  2. 关键组件
    • SMB 服务器:提供共享资源的设备(如 Windows 电脑、NAS 存储)。
    • SMB 客户端:访问共享资源的设备(如另一台电脑、手机)。
    • 网络协议:基于 TCP/IP 协议传输数据,默认使用端口 445(新协议)或 139(旧协议)。
    • 问题原因:网络共享删除不触发 Linux 回收站脚本

    • 在 Linux 服务器上通过脚本(如trash命令)实现的回收站功能,仅对本地终端执行的删除命令有效(如rm或trash命令),而 Windows 通过网络共享删除文件时,实际是通过SMB 协议直接操作服务器文件系统,不会调用 Linux 的 bash 脚本或 trash 命令,因此无法进入预设的 trash 目录。
      二、解决方案:针对 SMB 共享启用回收站功能
      1. 在 Linux 服务器上配置 Samba 共享回收站
      Samba(Linux 的 SMB 服务)支持为共享文件夹启用回收站功能,需修改配置文件:
      步骤 1:安装 Samba(若未安装)
      bash
      sudo apt-get install samba samba-common  # Ubuntu/Debian
      sudo yum install samba samba-client        # CentOS/RHEL

      步骤 2:编辑 Samba 配置文件
      bash
      sudo vim /etc/samba/smb.conf

      在共享文件夹配置块(如[电气])中添加以下参数:
      conf
      [电气]
      path = /home/共享目录/电气
      writeable = yes
      # 启用回收站功能
      vfs objects = recycle
      recycle:repository = .recycle/%U  # 回收站目录(建议在共享目录下创建)
      recycle:keeptree = yes            # 保留目录结构
      recycle:versions = yes            # 保留版本
      recycle:maxsize = 1000000000      # 回收站最大容量(1GB)
      recycle:directory_mode = 0700     # 回收站目录权限
      recycle:file_mode = 0600          # 回收站文件权限


      步骤 3:创建回收站目录并重启服务
      bash

      mkdir -p /home/共享目录/电气/.recycle

      chmod 777 /home/共享目录/电气/.recycle  # 临时权限,后续可按需调整

      systemctl restart smb.service   # 重启Samba服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C++ 老炮儿的技术栈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值