给Samba添加回收站功能

之前在使用windows服务器做文件共享时,如果客户端在共享文件夹里删除文件,那么将无法在服务器端找到已经删除的文件.如果在客户端有误删文件的情况,那么成功恢复文件的机率将非常小.

后来在网上查阅了一些资料, 原来samba共享是可以添加回收站功能的.删除的文件给直接放到设置好的回收站目录里.

只需要在已经设置好的共享文件字段里加上以下代码:

 

#recycle:repository = /samba/deleted/public/%U #指定该共享文件夹的回收站目录 %U是按登录的用户名分开存放
recycle:repository = /samba/deleted/public
recycle:keeptree = Yes #指定是否按删除时的目录结构存放
recycle:versions = Yes #指定是否区覆盖同名的文件,yes是不覆盖
recycle:maxsixe = 0 #指定回收站目录的大小,0是不限制
recycle:exclude = *.tmp|*.mp3 #不放入回收站的文件类型
recycle:noversions = *.doc #指定覆盖同名文件的文件类型

完整设置如下:

[公用文件夹]
comment = 公用文件夹
path = /samba/public#共享文件夹路径
read only = no#共享文件夹是否是只读

valid users = @kfb,root #用@指定可访问的用户组,不同组和用户之前用","分开

#指定用户建立文件或目录时的默认权限

create mask = 0660

directory mode = 2770
force create mode = 0660
force directory mode = 2770

#禁止上传的文件
veto files = /*.mp3/*.mp4/*.rmvb/*.wma/*.exe/*.bat/*.dll/*.avi/*.rar

#回收站设置
vfs object = recycle
recycle:repository = /samba/deleted/public
recycle:keeptree = Yes
recycle:versions = Yes
recycle:maxsixe = 0
recycle:exclude = *.tmp|*.mp3
recycle:noversions = *.doc

 

注意事项:

1.回收站文件夹的用户和用户组设置, 权限设置要和共享文件夹的设置是一样的, 如果不一致被删除的文件是无法保存到回收站文件夹

2.如果maxsize设置为0, 那么回收站的文件需要管理员手工去删除. 当然, 可以将删除文件的任务交给计划任务去完成,如:

vim /etc/crontab

30 8 * * * root find /samba/deleted/ -mtime +30 -exec rm -rf {} \;

上面的设置就是每天8:30 删除回收站内大于30天的文件

3.每个共享文件夹要单独设置一个回收站文件, 避免同名文件覆盖,同时也方便管理和查找.

------------------------------------分割线------------------------------------

如何在Ubuntu 14.04中使用Samba共享文件 

VMWare 虚拟机 Ubuntu 双网卡 访问 samba 速度 翻倍

Samba文件共享服务器加入Windows Server 2003域

Samba安装配置

CentOS 6.2 下Samba 服务的配置

Samba服务器安装和配置 

Win7+VMware+Fedora18 Samba服务器的搭建图解

------------------------------------分割线------------------------------------

Samba 的详细介绍请点这里
Samba 的下载地址请点这里

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/15211.html