目的
搭建一台FTP服務器,供學生上傳作業使用。
要求
1.學生可以直接訪問FTP服務器,無需登錄;
2.只能上傳文件,不能創建文件夾、重命名、刪除等;
3.不能下載文件(防抄襲);
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,所以可以不寫入配置文件。
第二個要求是通過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),而“其他人”沒有可讀權限,也一樣有效。
