很多时候,我们在samba的常规部置中,并没有给samba设置回收站。如果在使用过程中,发生误删操作,文件将无法挽回。
下面我们将介绍如何给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共享目录进行映射网络驱动器,或添加一个网络位置到【此电脑】中,以提高操作便捷性。