目的
搭建一台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),而“其他人”没有可读权限,也一样有效。