admin管理员组

文章数量:1587993

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

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

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

#recycle:repository = /samba/deleted/public/%U #指定该共享文件夹的回收站目录 %U是按登录的用户名分开存放recycle:repository = /samba/deleted/publicrecycle: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.每个共享文件夹要单独设置一个回收站文件, 避免同名文件覆盖,同时也方便管理和查找.

本文标签: 回收站功能Linuxsmbsamba