Site Loader

很多时候,我们在samba的常规部置中,并没有给samba设置回收站。如果在使用过程中,发生误删操作,文件将无法挽回。
下面我们将介绍如何给samba设置一个回收站。

沿用《ubuntu下部署samba,实现局域网文件共享》中的配置及操作,我们将为sambafiles共享目录添加相应的回收站。

在var目录下建立一个目录,用于存放被删文件,名称为smbdeleted,并赋予目录777权限。

mkdir /var/smbdeleted
chmod 777 /var/smbdeleted

修改samba配置文件

nano /etc/samba/smb.conf

在原有的sambafiles配置项下添加如下配置

vfs object = recycle 
recycle:repository= /var/smbdeleted
recycle:keeptree=yes
recycle:maxsize=0 

各项参数解析如下

vfs object = recycle //载入samba回收站模块
recycle:repository= /var/smbdeleted //此项是定义被删文件的存放目录路径
recycle:keeptree=yes //删除文件时,保存原有目录结构
recycle:maxsize=0 //回收站的空间大小,单位为字节,0表示不限制

最后配置如下

[sambafiles]
comment = sambafiles
browseable = yes
path = /var/sambafiles
create mask = 0777
directory mask = 0777
valid users = smbuser
public = no
available = yes
writeable = yes
vfs object = recycle 
recycle:repository= /var/smbdeleted
recycle:keeptree=yes
recycle:maxsize=0 

重启samba服务,使配置生效。

service smbd restart

此时,用户对sambafiles目录中的内容进行删除操作时,所删除文件及文件夹将被移到smbdeleted目录中。

但用户仍不能在windows等图形界面下对回收站进行清空、恢复等操作。因此,我们也需要把smbdeleted目录加进共享中。

继续修改samba配置文件

nano /etc/samba/smb.conf

在文件未尾继续添加如下配置项,设置方式与[sambafiles]基本相同,不同的是指向的目录,以及没有回收站设置。

[smbdeleted]
comment = smbdeleted
browseable = yes
path = /var/smbdeleted
create mask = 0777
directory mask = 0777
valid users = smbuser
public = no
available = yes
writeable = yes

同次重启samba服务,使配置生效。

service smbd restart

在windows下刷新samba共享窗口,将多了一个smbdeleted共享。

我们尝试在sambafiles共享中新建一个目录及一个txt文件,并将其删除。

进行入samba回收站目录,我们只发现被删除的txt文件,而被删除的目录并没有转移过来,我想这个可能与此目录是一个空目录有关。
我们再次尝试在sambafiles共享中新建一个目录,并在新建目录中再建一个txt文件,并将整个目录删除。

再查看samba回收站目录,所删文件夹已经转移过来了。

此时,我们已经具备了对应sambafiles共享的回收站,并且也能够对回收站内容进行操作了。

为以后更好的管理,我们可以对samba共享目录进行映射网络驱动器,或添加一个网络位置到【此电脑】中,以提高操作便捷性。

Post Author: 记忆深潜

发表评论

电子邮件地址不会被公开。 必填项已用*标注