1. 程式人生 > >Linux解決問題篇——ftp上傳檔案(使用put)時,permission denied,下載檔案(使用get)時,failed to open file

Linux解決問題篇——ftp上傳檔案(使用put)時,permission denied,下載檔案(使用get)時,failed to open file

使用ftp連線本地伺服器時,在上傳put時出現問題,幾番折騰,最終解決。

我的操作流程:1、要上傳的檔案存在/tmp中,名稱為testfile,這個檔案我是使用dd建立的:dd if=/dev/zero of=/tmp/testfile bs=1M count=200,這樣子生成一個200M的檔案;

                            2、命令列輸入:ftp localhost,輸入使用者名稱:anonymous,密碼為空,ftp>cd pub

                            3、接著執行:ftp>put /tmp/testfile testput,報錯

排錯思路:

1、檢視要上傳的檔案許可權,發現我新建的testfile 檔案許可權為-rw-r--r--,應該不是這個檔案許可權的問題,不過為了排除,還是修改了許可權,改成所有許可權都有,chmod 777 testfile

2、修改許可權之後,重新修改,發現還是denied,上網查,有同學指出修改配置檔案中的引數在/etc/vsftpd.conf配置檔案最後增加一行即可:write_enable=YES檢查/etc/vsftpd.conf配置檔案中的write_enable,發現它的預設值是YES,排除這個原因

3、接下來考慮是不是pub資料夾許可權問題,ftp>ls 檢視pub資料夾詳細資訊(要先ftp>cd ..返回上一級目錄),發現pub資料夾具有所有的許可權,排除這個因素

4、設定/etc/vsftpd.conf配置檔案中的anonymous_enable=YES,anon_upload_enable=YES,anon_mkdir_write_enable=YES,修改完畢後,重啟ftp服務,重新連線

總算可以成功上傳。

                        4、上傳成功後,使用get命令下載一個檔案到本地,ftp>get testput testget(注意,此時testget這個檔案會下載到本地當前所在目錄,比如說我是在/tmp目錄下執行的ftp localhost,此時下載的testget檔案會存放在/tmp目錄下),報錯:failed to open file

排錯思路:

1、第一下想到的是檔案許可權問題,ftp>ls檢視後,發現testput檔案為只讀許可權,於是要修改,結果直接在ftp命令列模式下輸入ftp>chmod 777 testput,提示permission denied,去網上查了一下,原來ftp中是不可以修改檔案及資料夾許可權的,因為時間來不及,我就選取了最直接的方法,進入ftp所在目錄去修改.

2、修改步驟:cd /var/ftp/pub ;chmod 777 testput

3、重新執行ftp>get testput testget,即可下載,進入相應的目錄可以檢視到下載下來的檔案

可以成功下載。

注意:下載時,修改了檔案許可權後,可以不重啟ftp服務。