關於VSFTPD匿名使用者檔案上傳許可權的問題
-
開啟配置檔案, 修改如下內容:
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 設定匿名使用者上傳檔案的屬主名 -
檢視vsftp預設目錄:
cat /etc/passwd | grep ftp -
給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,也是有許可權的。