Centos下vsftp無法上傳文件及其它問題總結

vsftp用它就是上傳文件了如果我們的vsftp不能上傳文件了那肯定就沒用了,那麽碰到vsftp無法上傳文件或創建文件夾之類的我們要如何來處理?具體的解決辦法如。

vsftp無法上傳文件

用SecureCRT遠程登錄後,我做了如下檢查:

①、打開了vsftp配置文件(/etc/vsftpd/vsftpd.conf)檢查write_enable狀態,發現正常:


[root@VM_72_108_centos /]# cat /etc/vsftpd/vsftpd.conf | grep write_enable
write_enable=YES
#anon_mkdir_write_enable=YES
[root@VM_72_108_centos /]#

②、查看ftp用戶是否具備目錄的讀寫權限,發現也是可行的775狀態(www組)。


[root@VM_72_108_centos wwwroot]# ll
total 8
drwxrwxr-x 3 www www 4096 Jun 12 12:34 default
drwxrwxr-x 9 www www 4096 Jun 12 14:54 weixin.weightwl.com

③、在命令提示符CMD中使用ftp,可獲取到一些explore看不到的報錯信息,便于資料搜索:


于是在百度搜索了下如下報錯信息:
200 PORT command successful. Consider using PASV.
425 Failed to establish connection.

最終,在一個linux論壇才找到了如下解決辦法:
作者說這個問題在Centos上才會出現,Redhat就沒有,難怪我在公司都沒見過這問題。
解決辦法:
①、查看ftp的Selinux狀態:sestatus -b | grep ftp
②、在結果中可以看到: ftp_home_dir off
③、將狀態改爲on:setsebool -P ftp_home_dir on
④、重啓vsftp服務:service vsftpd restart
有點納悶的是,他的伺服器根本就沒開selinux,所以第②步根本沒結果,理論上,這個解決辦法應該沒效果才對,可實際上,全部執行完成之後,發現可以上傳文件和新建文件夾了。我去,還真是詭異,總之解決了問題就好。

張戈額外補充一條VPS常用的新增FTP帳號的命令行,方便定義不同的ftp帳號:


useradd -g www -d /home/www/zhangge.net -s /sbin/nologin username
# -g 表示所屬用戶組,請根據實際選擇
# -d 表示登錄後的工作目錄,請指定所要指向的網站根目錄即可。
# -s /sbin/nologin 表示設定此賬號僅用于ftp,不允許登錄到系統。
#username 新增的用戶名,請自定義。
passwd username
#如上使用passwd 設定ftp用戶的密碼。

補充:CENTOS6.4 VSFTP無法上傳文件的解決方法

方法1、直接關閉selinux,命令:/usr/sbin/setenforce 0;

方法2、在selinux開啓的情況下
運行命令(查看ftpd開啓的服務):getsebool -a | grep ftp

下圖是無法上傳文件的情況:allow_ftp_anon_write–>off

Centos下vsftp無法上傳文件及其它問題總結

使用命令:setsebool allow_ftp_anon_write=1

運行之後結果如下圖:allow_ftp_anon_write–>on

Centos下vsftp無法上傳文件及其它問題總結

之後便大功告成,可以上傳文件咯喲

曬曬,我當時配置發現錯誤時解決此問題的終端命令vi

Centos下vsftp無法上傳文件及其它問題總結

不能創建文件夾

還要對ftp的root文件夾權限設置:

chmod 777 -R /var/ftp/pub


vsftp匿名用戶無法上傳文件

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

  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命令進入。

更多相關文章
  • 本文章是以iphone手機上圖片過程中一些問題的總結與解決辦法了,文章使用的是jQuery-File-Upload插件也有些朋友使用swf是不一樣的,因手機不支持swf哦,所以及我們必須使用js來實最近在做一些活動站
  • 本文章給大家介紹iis配置php無法上傳文件解決辦法,有碰到此類問題的同學可參考.根據上面的描述,我懷疑問題出在IIS的權限配置上,IUSR_MACHINE的帳戶對upload沒有寫入的權限,于是進行權限修改,IIS下的權限,NTFS下的權限都進行修改,但是終究都沒用,查找網路上的資料也沒有相應的, ...
  • CentOS安裝KLOXO面板與一些問題總結
    KLOXO面板Kloxo簡介Kloxo的前身是lxadmin,是一款免費的虛擬主機管理系統,安裝簡單,功能強大,可以快速地在red hat,centos系列linux系統的主機上,下面我來總結一下CentOS安裝KLOXO面板與一些問題總結KLOXO已經有段日子沒有更新了,最後更新于2011-11- ...
  • 在nginx上傳大文件時一般都提示上傳附件都失敗,有時在一些頁面偶爾提示timeout或者413 Request Entity Too Large這類錯誤了,這個我們看問題是文件過大,頁面執行時間相關的問題.我們利用
  • csv是一種超級簡單的excel表格形式了,我們生成只要按指定格式然後生成.csv文件就可以了,雖然說簡單但使用中也會碰到不少的問題,下面小編來爲各位總結一下.例子,生成csv文件並下載//要生成csv文件的數組$csvArr=array();$csvArr[]=array('用戶編號1','上班日
  • VNC Server 是一般 Linux 發行版都會附帶的 VNC伺服器軟件. vncserver 是一個爲了滿足分布式用戶共享伺服器上面的資源,而在伺服器上開啓的一項服務,下面一起來看看CENTOS下安裝VNCSERVER教程.我的伺服器默認是最小安裝,所以沒有vncserver.使用yum安裝一 ...
  • CodeIgniter是一個不錯的框架了,我們今天在使用 CodeIgniter開發時碰到要上傳csv文件了,但發現不能正常上傳了,那麽要如何處理 此問題呢?解決 CodeIgniter 中使用 Upload 類無法
  • win2003/win7 iis7與IIS6對無法上傳大文件的解決方法
    Windows 2003 Server下無法上傳附件,無論是文章還是軟件上傳都會出現:Request 對象 錯誤 'ASP 0104 : 的錯誤,請按照下面的說明一步步操作: 更改win2003的IIS 6.0對asp教程的上傳文件大小爲200k限制,aspx的上傳程序沒有影響.在IIS6.0中,默 ...
一周排行
  • TCP連接建立與終止詳解教程
    TCP 是一種面向連接的.可靠的.基于字節流的傳輸層通信協定,在數據發送前,雙方之間建立一
  • Btrfs(通常念成Butter FS),由Oracle于2007年宣布並進行中的COW(copy-on-write式)文件系統.目標是取代Linux目前的ext3文件系統,改善ext3的限制,特別是單一文件大小的限
  • 安裝 ffmpeg環境在前面介紹過一篇文章了,今天我來爲各位介紹關于在linux 下安裝 ffmpeg環境的方法,希望下文能夠對各位帶來幫助.首先要安裝各種解碼器1.lamelame-3.99.5.tar.gz Ur
  • failed to fetch是什麽意思 越獄完cydia顯示failed to fetch解決辦法
    failed to fetch是什麽意思?有朋友會問我自己越獄完之後會提示failed t ...
  • iphone6升級iOS8.4後GPS無法定位問題解決辦法
    最近火速上線的ios8.4修複了不少的問題但是也帶來了一些問題了,如iphone6升級iO
  • 關于dedecms中tag標簽我這兩天接觸最多了,昨天發現無法實現調用當前頁面的tag標簽,而調用當前頁面標簽只能調用純文本的問題,今天我突然發現全部解決了.注明:測試系統dedecms5.7測試站:http://q
  • Exim是一個MTA(Mail Transfer Agent,郵件傳輸代理)伺服器軟件,該軟件基于GPL協定開發,是一款開源軟件.該軟件主要運行于類UNIX系統,下面我們來看看CentOS 7系統配置exim發郵件伺 ...
  • 創建iframe, 添加到body中,最後添加load事件.所有浏覽器下將表現一致.var ifr = document.createelement('iframe'); document.body.insertbe
  • 先從新站收錄開始說百度seo教程和谷歌seo的區別吧! 從收錄的時間上來說,一般情況下谷歌的收錄要比百度快,只要在谷歌登陸入口提交網址或者是在一些比較活躍網站做一些外鏈,很快便會被谷歌收錄;百度對于新站不會立刻收錄, ...
  • 以前用php連mssqy時也經常出現中文亂碼(中文變問號)的問題,那時就明白是編碼沒設置好導航,現在的Python連mssql數據庫也同樣出現這問題,問題一樣,解決的辦法當然也會相似,現在我們來看看解決方法.pyth