目的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),而「其餘人」沒有可讀權限,也同樣有效。