Linux操作系统中Samba如何启用回收站功能

Samba 启用回收站功能需要修改配置文件,可针对特定共享目录或全局进行配置,以下是具体操作方法:

打开配置文件:使用文本编辑器打开 Samba 的配置文件/etc/samba/smb.conf,命令如下:

vi /etc/samba/smb.conf

添加配置参数:

  • 针对特定共享目录:找到要启用回收站功能的共享目录配置段,例如[share1],在其中添加以下内容:

vfs object = recycle
recycle:repository =.deleted/%U
recycle:keeptree = Yes
recycle:versions = Yes
recycle:maxsize = 0
recycle:exclude = *.tmp|*.bak
recycle:noversions = *.doc

其中,vfs object = recycle用于载入 Samba 回收站功能模块;recycle:repository =.deleted/%U指定回收站相对路径,删除的文件会被放入共享文件夹下的.deleted文件夹中,%U表示用户名;recycle:keeptree = Yes表示删除文件时保存原有文件夹层级结构;recycle:versions = Yes表示遇到同名文件时以 “Copy #x of” 形式区分;recycle:maxsize = 0表示回收站空间无限制;recycle:exclude = *.tmp|*.bak表示.tmp和.bak类型文件不放入回收站;recycle:noversions = *.doc表示.doc类型文件遇到同名时直接覆盖。

  • 全局启用(对所有共享目录生效):在[global]段中添加上述配置参数,即可对所有共享目录启用回收站功能。

重启 Samba 服务:完成配置后,重启 Samba 服务使设置生效,命令如下:

systemctl restart smb.service

启用回收站功能后,用户删除的文件会被移动到指定的回收站目录中,从而可防止误删文件造成的数据丢失。

recycle:repository =.deleted/%U 是 Samba 配置中用于指定回收站路径的参数,下面为你详细解析其含义和作用:

参数解析:

  • .deleted:这表明回收站会在共享目录的根路径下创建一个名为 .deleted 的隐藏文件夹。举个例子,若共享目录为 /data/share,那么回收站的实际路径就是 /data/share/.deleted。

  • %U:这是一个变量,代表的是执行删除操作的用户名。借助这个变量,不同用户删除的文件会被存放在不同的子文件夹中,比如用户 alice 删除的文件会被存放在 .deleted/alice 文件夹里,用户 bob 删除的文件则会存放在 .deleted/bob 文件夹。

实际效果

假设共享目录为 /data/public,用户 user1 删除了共享目录下的 document.txt 文件,那么该文件会被移动到 /data/public/.deleted/user1/document.txt 这个位置。

配置优势

  • 文件隔离:不同用户的删除文件相互隔离,避免出现文件覆盖或者误恢复的情况。

  • 便于管理:管理员能够轻松查看每个用户删除了哪些文件。

  • 恢复简便:用户可以直接从自己对应的回收站子目录中恢复误删的文件。

注意要点

  • 权限设置:.deleted 目录需要确保所有用户都有写入权限,一般将其权限设置为 770,所属用户组为 users 或者共享组。

  • 磁盘空间:要留意回收站的磁盘占用情况,定期进行清理。可以通过 recycle:maxsize 参数来限制回收站的大小。

  • 路径规范:路径分隔符要使用 /,即便在 Windows 客户端也是如此,Samba 会自动完成路径转换。

相关配置参数

参数说明示例
recycle:keeptree = Yes保留原始文件路径结构删除 /docs/report.doc 会被移动到 .deleted/user1/docs/report.doc
recycle:versions = Yes对同名文件创建副本第二次删除 file.txt 会被重命名为 Copy 1 of file.txt
recycle:exclude = *.tmp排除特定类型文件临时文件不会被放入回收站

配置示例

下面是一个完整的共享目录配置示例:

[public]
    path = /data/public
    read only = no
    guest ok = yes
    vfs object = recycle
    recycle:repository =.deleted/%U
    recycle:keeptree = Yes
    recycle:versions = Yes
    recycle:maxsize = 1000000  # 限制单个文件最大为1MB
    recycle:exclude = *.log|*.tmp

配置完成后,重启 Samba 服务,回收站功能就会生效。用户在 Windows 或 Linux 客户端删除文件时,文件会自动被移动到共享目录下的回收站中。

点赞 0 分享
本文为「本站原创」,未经我们许可,严谨任何人或单位以任何形式转载或刊载本文章,我们保留依法追究侵权的权力!

微信联系我们

亿百天技术客户服务

使用微信扫一扫

昵称:亿百天技术

公司:湖北亿百天信息技术有限公司

电话:027-88773336

手机:15342213852

邮箱:serviceebaitian.cn

相关栏目

加载中...

成为会员立享特权

立即注册亿百天公司会员,在线联系客服立即享受会员特权,还有丰厚礼品赠送;签约时可以享受特低折扣优惠,期待您的加入!

客服热线:400-840-3336

我们为您提供个性化的售前咨询服务,及全面的技术售后服务。