使用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服务。