FileZilla共享外接硬盘文件报错问题求助
FileZilla共享外接硬盘文件报错问题求助
Hey,你遇到的这个问题我之前帮不少朋友排查过,大概率是权限或者挂载配置的问题,咱们一步步来捋清楚:
先确认外接硬盘的挂载状态与基础权限
先SSH登录你的VPS,执行df -h命令,看看外接硬盘是不是已经成功挂载,找到它对应的挂载点(比如/mnt/external_hd这种)。
接着用ls -ld /mnt/external_hd查看挂载点的权限,确保你用来连接FTP的用户(不管是默认的ftp用户还是你自定义的账号)拥有读/写权限。如果权限不对,用chmod 755 /mnt/external_hd开启读权限(要写权限的话用chmod 775),同时记得把FTP用户加到对应的用户组里:usermod -aG ftp your_ftp_username。检查FileZilla Server的用户共享配置
登录FileZilla Server的管理界面,找到你用的FTP用户,查看「共享文件夹」设置:- 务必确认你添加的共享路径是外接硬盘的实际挂载点,别填成设备路径(比如
/dev/sdb1这种是不对的); - 检查用户对这个共享文件夹的权限开关,是不是根据你的需求勾选了「读取」「写入」,有时候默认可能只开了部分权限,导致访问失败。
- 务必确认你添加的共享路径是外接硬盘的实际挂载点,别填成设备路径(比如
排查系统安全策略的限制
很多VPS默认开启了SELinux(CentOS/RHEL系列)或AppArmor(Debian/Ubuntu系列),这些安全工具可能会阻止FTP进程访问外接硬盘:- 如果是SELinux,先临时关闭测试:
setenforce 0,之后再用客户端访问试试。如果能正常访问了,就需要配置永久规则,比如setsebool -P ftp_home_dir on,或者针对挂载点添加规则:semanage fcontext -a -t public_content_rw_t "/mnt/external_hd(/.*)?",执行完再刷新规则:restorecon -Rv /mnt/external_hd; - 如果是AppArmor,找到对应的配置文件(比如
/etc/apparmor.d/usr.sbin.proftpd,FileZilla Server常依赖proftpd后端),把外接硬盘的挂载点路径添加到允许访问的列表里,然后重启AppArmor服务:systemctl restart apparmor。
- 如果是SELinux,先临时关闭测试:
留意外接硬盘的文件系统权限(尤其是NTFS格式)
如果你的外接硬盘是NTFS格式,挂载时没设置权限参数的话,所有文件都会默认归root所有,FTP用户根本访问不了。这种情况要修改/etc/fstab里的挂载配置,比如:/dev/sdb1 /mnt/external_hd ntfs-3g defaults,uid=ftp,gid=ftp,umask=002 0 0修改后执行
mount -a重新挂载,这样FTP用户就能拥有对应权限了。
备注:内容来源于stack exchange,提问作者hawk8327




