vsftpd匿名使用者上傳和下載的配置

neonlight發表於2010-10-30

vsftpd匿名使用者上傳和下載的配置

 

  看到很多朋友配置vsftpd時不能使用匿名使用者上傳和下載(建立目錄或刪除、重新命名資料夾),本文主要解決vsftpd的匿名使用者許可權配製問題。

 

  配置要注意三部分,請一一仔細對照:

 

  1、vsftpd.conf檔案的配置(vi /etc/vsftpd/vsftpd.conf)

  #允許匿名使用者登入FTP

  anonymous_enable=YES

  #設定匿名使用者的登入目錄(如需要,需自己新增並修改)

  anon_root=/var/ftp/pub

  #開啟匿名使用者的上傳許可權

  anon_upload_enable=YES

  #開啟匿名使用者建立目錄的許可權

  anon_mkdir_write_enable=YES

  #開啟匿名使用者刪除和重新命名的許可權(如需要,需自己新增)

  anon_other_write_enable=YES

  #匿名使用者的掩碼(如需要,需自己新增,含義:如umask是022,這時建立一個許可權為666的檔案,檔案的實際許可權為666-022=644)

  anon_umask=022

 

  2、ftp目錄的許可權設定

  預設情況下,ftp的根目錄為/var/ftp,為了安全,這個目錄預設不允許設定為777許可權,否則ftp將無法訪問。但是我們要匿名上傳檔案,需要“other”使用者的寫許可權,正確的做法:

  在/var/ftp中建立一個upload(名子自己起吧)資料夾,將個資料夾許可權設定為777(視具體需要自己設),在upload這個資料夾中,匿名使用者可以上傳檔案、建立資料夾、刪除檔案等。

 

  一般至此,便實現vsftpd匿名使用者的上傳下載了。如果還不行,就是下面的問題。

 

  3、selinux的配置

  SELinux(Security-Enhanced Linux) 是美國國家安全域性(NAS)對於強制訪問控制的實現,是 Linux上最傑出的新安全子系統。NSA是在Linux社群的幫助下開發了一種訪問控制體系,在這種訪問控制體系的限制下,程式只能訪問那些在他的任務中所需要檔案。SELinux 預設安裝在 Fedora 和 Red Hat Enterprise Linux 上,也可以作為其他發行版上容易安裝的包得到。

  最簡單的辦法,關閉selinux

  方法1:修改/etc/selinux/config檔案中的SELINUX="" 為 disabled ,然後重啟。

  方法2:用命令setenforce 0,無需重啟。(setenforce的格式:setenforce [ Enforcing | Permissive | 1 | 0 ])

  方法3:在lilo或者grub的啟動引數中增加:selinux=0,也可以關閉selinux。

  使用getenforce檢視當前selinux是否正在執行。

 

  不關閉selinux,就要設定selinux的ftp許可權。

  1、使用getsebool -a | grep ftp檢視ftp相關設定狀態,我們要將allow_ftpd_anon_write設為on。

  2、使用setsebool -P 進行設定。例:setsebool -P allow_ftpd_anon_write=on。

   或使用togglesebool進行bool值取反,例如togglesebool allow_ftpd_anon_write。

  3、修改selinux安全上下文,先介紹兩個命令:

   命令1、ls -Z  ps -Z  id -Z  # 分別可以看到檔案,程式和使用者的SELinux屬性

   命令2、#chcon 改變SELinux安全上下文

   chcon -u [user]  物件

       -r [role]

       -t [type]

       -R 遞迴

       --reference 原始檔 目標檔案           # 複製安全上下文

   使用方法:

    步驟1、ls -Zd /var/ftp/upload/ 通常會看到:

     drwxr-xr-x ftp root system_u:object_r:public_content_t /var/ftp/upload/

    步驟2、chcon -R -t public_content_rw_t /var/ftp/upload/

    步驟3、ls -Zd /var/ftp/upload/ 如果看到如下資訊就OK了:

     drwxr-xr-x ftp root system_u:object_r:public_content_rw_t /var/ftp/upload/

 

  最後還是重啟下selinux和vsftpd吧,不重啟其實也沒關係。重新登入到ftp上,應該就能解決問題了。

 

  另,selinux的圖形介面 可由system-config-selinux命令進入。

 

  就這些內容了,希望對大家有幫助。

 

  本文作者:neonlight <neonlight@live.cn>,BLOG:http://blog.csdn.net/neonlight 轉載請註明出處,謝謝!2009-12-15

相關文章