背景
一般情况下,ftp的访问目录是固定的,配置在vsftpd.conf文件中;但有时会想访问ftp目录之外的文件,马上想到的解决方法就是将目标文件夹软链接在ftp目录下,但是ftp目录下的软链接会被ftp识别为快捷方式,外部无法直接访问软链接中的文件
解决方法
Linux
内核从2.4.0
开始支持把一部分文件系统挂载到文件系统中的其他位置,mount
命令的--bind
选项正好支持了这个功能。
例如:要访问的目标文件夹为/opt/dest/
,vsftpd的匿名访问目录(这里以匿名访问目录为例)为/var/ftp/pub/
在/var/ftp/pub/
目录下新建文件夹temp,mkdir /var/ftp/pub/temp
;
然后挂载目录mount --bind /opt/dest /var/ftp/pub/temp
在/var/ftp/pub/temp/
目录中即可访问到/opt/dest/
下的文件了
使用完成后需要取消挂载可以执行命令umount /var/ftp/pub/temp/
若现在改目录正在被使用,可以使用fuser
命令查看占用目录的进程,杀掉该进程再次解除挂载即可。