You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

配置vsftpd实现匿名用户仅向指定文件夹上传文件

配置vsftpd实现匿名用户仅向指定文件夹上传文件

当然可以实现!我之前也折腾过类似的需求,按下面的步骤一步步来就行:

1. 调整vsftpd配置文件

首先打开vsftpd的主配置文件(一般是/etc/vsftpd.conf),修改或添加以下关键配置项:

  • 开启匿名访问:anonymous_enable=YES
  • 全局开启写权限(这是匿名上传的前提):write_enable=YES
  • 允许匿名用户上传文件:anon_upload_enable=YES
  • 如果需要允许匿名用户在uploads目录里创建子文件夹,再加一行:anon_mkdir_write_enable=YES
  • 把匿名用户限制在FTP根目录下(防止他们访问系统其他目录):chroot_local_user=YES
  • 解决chroot后的权限报错问题:allow_writeable_chroot=YES

配置完后记得保存文件。

2. 调整目录权限(关键!)

你已经创建了uploads目录并设置ftp为所有者,这里再细化一下权限更安全:

  • 你的FTP根目录(比如/srv/ftp):设置所有者为root:root,权限设为755,这样匿名用户只能读取根目录下的内容,无法修改或上传到根目录。
  • uploads目录:保持所有者为ftp:ftp,权限可以设为755(比777更安全,ftp用户有写权限,其他用户只读),执行命令:
    chown ftp:ftp /srv/ftp/uploads
    chmod 755 /srv/ftp/uploads
    

3. 重启vsftpd服务

配置和权限都调整好后,重启服务让配置生效:

systemctl restart vsftpd

额外注意事项

如果配置后还是无法上传,可能是SELinux在搞鬼:

  • 临时关闭SELinux测试:setenforce 0,如果能正常上传了,就设置永久规则:setsebool -P ftpd_anon_write 1

这样配置完成后,匿名用户登录FTP后,只能在uploads目录里上传文件,其他目录都是只读状态,完全符合你的需求。

备注:内容来源于stack exchange,提问作者user22697175

火山引擎 最新活动