目的linux
搭建一台FTP服务器,供学生上传做业使用。bash
要求服务器
1.学生能够直接访问FTP服务器,无需登陆;spa
2.只能上传文件,不能建立文件夹、重命名、删除等;rest
3.不能下载文件(防抄袭);code
4.不能在线查看文件。文档
配置# 建立upload目录
mkdir
/var/ftp/upload
# 改变属主
chown
ftp
/var/ftp/upload
博客
listen=YES
write_enable=YES
anon_upload_enable=YES
# 重启vsftpd服务
service vsftpd restart
第一个要求是经过anonymous_enable=YES参数实现的,即容许匿名用户登陆,由于这个参数的值默认就是YES,因此能够不写入配置文件。it
第二个要求是经过anon_upload_enable=YES、anon_mkdir_write_enable=NO、anon_other_write_enable=NO这三个参数实现,即容许匿名用户上传,不容许匿名用户建立目录和其余写入权限(删除和重命名),由于anon_mkdir_write_enable和anon_other_write_enable这两个参数默认值都是NO,因此也能够不写入配置文件。io
第三个要求是经过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),而“其余人”没有可读权限,也同样有效。