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服務。