1. 程式人生 > >關於VSFTPD匿名使用者檔案上傳許可權的問題

關於VSFTPD匿名使用者檔案上傳許可權的問題

  1. 開啟配置檔案, 修改如下內容: 
    vi /etc/vsftp/vsftpd.conf 
    anonymous_enable=YES 允許匿名使用者訪問 
    write_enable=YES 允許登入使用者有寫許可權。屬於全域性設定 
    anon_root=var/ftp 指定匿名使用者登入的目錄 
    anon_upload_enable=YES 允許匿名使用者有上傳檔案的許可權 
    anon_mkdir_write_enable=YES 允許匿名使用者有新增目錄的許可權 
    chown_uploads=YES 設定是否改變匿名使用者上傳檔案的屬主。預設為NO。chown_uploads=YES的時候不設定chown_users列表,anon_umask是不生效的。
    chown_username=username 設定匿名使用者上傳檔案的屬主名

  2. 檢視vsftp預設目錄: 
    cat /etc/passwd | grep ftp

  3. 給vsftp目錄授權, 讓匿名使用者能夠上傳檔案到此目錄 
    chmod 777 -R /var/ftp/pub

今天搞VSFTP,匿名使用者上傳的檔案許可權一直不對,anon_umask不生效,一直顯示檔案許可權為600,檔案所屬為root:ftp,經除錯發現是如下原因。

chown_uploads=YES

   這種情況下需要設定chown_users列表,但是你不設定也不會報錯,因為系統預設給你設定了個root使用者,上傳上去的檔案所有會是root:ftp。無論你是否設定anon_umask,上傳的檔案都會是600許可權,很噁心,自己能上傳但是不能下載。

   這種情況可用於公司開發檔案上傳,只要上傳了你就不能修改。

chown_uploads=NO

   這種情況下,通過修改anon_umask檔案來控制匿名使用者上傳檔案的許可權,不過上傳的檔案所有者會變為ftp:ftp,也就是說這種情況下匿名使用者總是可以修改自己上傳的檔案的,即使anon_umask=777,也是有許可權的。