vsftpd匿名用户只能上传不能下载

目的

搭建一台FTP服务器,供学生上传作业使用。

要求

1.学生可以直接访问FTP服务器,无需登录;

2.只能上传文件,不能创建文件夹、重命名、删除等;

3.不能下载文件(防抄袭);

4.不能在线查看文件。

配置
# 创建upload目录
mkdir /var/ftp/upload
# 改变属主
chown ftp /var/ftp/upload

# 用以下内容替换/etc/vsftpd/vsftpd.conf文件原来的内容
listen=YES
write_enable=YES
anon_upload_enable=YES
 
# 重启vsftpd服务
service vsftpd restart
原理解释

第一个要求是通过anonymous_enable=YES参数实现的,即允许匿名用户登录,因为这个参数的值默认就是YES,所以可以不写入配置文件。

第二个要求是通过anon_upload_enable=YES、anon_mkdir_write_enable=NO、anon_other_write_enable=NO这三个参数实现,即允许匿名用户上传,不允许匿名用户创建目录和其他写入权限(删除和重命名),因为anon_mkdir_write_enable和anon_other_write_enable这两个参数默认值都是NO,所以也可以不写入配置文件。

第三个要求是通过anon_world_readable_only=YES、anon_umask=077这两个参数实现的,具体原理可以参见我的另外一篇博客:anon_world_readable_only的作用。

第四个要求是针对txt文档而言,如果学生上传的作业不是以txt文档保存的话就不需要配置了,当然,你可以利用file_open_mode=0000来控制上传文件的权限,这样就算是txt文件,也无法在线查看了。

注:anon_world_readable_only的作用

   linux文件权限分成“属主”、“属组”和“其他人”这三种,如果“其他人”没有可读权限,那anon_world_readable_only这个参数就起效了,对于目录来说,如果“其他人”没有可读权限,且anon_world_readable_only=YES,则匿名用户无法浏览该目录下的所有内容(看上去像个空目录),而对于文件来说,如果“其他人”没有可读权限,且anon_world_readable_only=YES,则匿名用户无法下载该文件。 

注:就算文件的“属主”是匿名用户(ftp),而“其他人”没有可读权限,也一样有效。

原文地址:https://www.cnblogs.com/bwteacher/p/4770996.html