您好,登錄后才能下訂單哦!
搭建一個ftp服務器,我使用ubuntu 10.04操作系統,下載vsftpdy源代碼,
進行了編譯,安裝,然后按照INSTALL文件,創建了用戶等操作。
因為時間比較緊,我采用匿名用戶,進行文件的上傳測試。修改了/etc/vsftpd.conf文件,
將默認注釋不讓匿名用戶上傳文件的注釋去掉,然后保存,然后殺死vsftpd進程,然后重新運行
$ sudo vsftpd &
進行ftp服務器的啟動。
使用一個客戶端,可以正常的連接,但是當上傳文件時,總是報553 Could not create file錯誤信息。
我也是按照網上的做法,對/var/ftp目錄進行權限設置,如果設置為chmod -R 777 /var/ftp
還會導致ftp服務器不能啟動,經過摸索,終于找到了解決的方法。
首先在ftp的目錄中創建一個目錄,然后設置權限為777
$ sudo mkdir /var/ftp/write
$sudo chmod -R 777 /var/ftp/write
然后修改vsftp的配置文件/etc/vsftpd.conf文件
在最后添加上
local_root=/var/ftp
保存,然后殺死vsftpd進程,然后重啟vsftpd服務器程序。
試試看,將文件上傳到write目錄,這個時候可以正常的上傳文件了。
加下來我們再來看一篇其他網友的解決方法:
首先,要看你是用什么用戶上傳了,如果是普通用戶的話:
1.要確定目標文件夾有沒有讀寫的權限,(當然也要有執行的權限,不然不能打開文件夾)
2如果都有了,那就是selinux限制了,把selinux關掉就可以了。(setenforce 0)
如果是anonymous用戶的話:
和上面一樣,關掉selinux,再給予相應的權限就可以解決
我這里要說一種不關掉selinux的解決方法
先運行getsebool -a | grep ftp (查看selinux里有哪些關于ftp的)
allow_ftpd_anon_write --> off
allow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
ftp_home_dir --> off
ftpd_connect_db --> off
httpd_enable_ftp_server --> off
sftpd_anon_write --> off
sftpd_enable_homedirs --> off
sftpd_full_access --> off
sftpd_write_ssh_home --> off
tftp_anon_write --> off
接下來我們allow_ftpd_anon_write allow_ftpd_full_access 這兩個ON掉
setsebool -P allow_ftpd_anon_write on
setsebool -P allow_ftpd_full_access on
這樣子就OK了,如果出現
500 OOPS: vsftpd: refusing to run with writable anonymous root
500 OOPS: priv_sock_get_cmd
就是你把VSFTPD的根目錄給了777的權限了,把它改成755,然后再在這個目錄里建文件夾,可以給777的權限!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。