安装和使用vsftp

⑴准备目录和用户
VSFTPD默认配置中需要“nobody”用户。在系统中添加此用户,如果用户已经存在,useradd命令有相应提示。
[root@15h98 vsftp1.2.1]# useradd nobody
useradd: user nobody exists

VSFTPD默认配置中需要“/usr/share/empty”目录。在系统中此目录,如果目录已经存在,mkdir命令有相应提示。
[root@15h98 vsftp1.2.1]# mkdir /usr/share/empty/
mkdir: cannot create directory '/usr/share/empty': File exists

VSFTPD提供匿名FTP服务时,需要“ftp”用户和一个有效的匿名目录。
[root@15h98 vsftp1.2.1]# mkdir /var/ftp/
[root@15h98 vsftp1.2.1]# useradd -d /var/ftp ftp
接下来的操作对于ftp用户是否已经存在都是有用的。
[root@15h98 vsftp1.2.1]# chown root.root /var/ftp
[root@15h98 vsftp1.2.1]# chmod og-w /var/ftp

⑵编译VSFTPD
从官方站点下载到/root目录,执行以下命令:
[root@15h98 vsftp1.2.1]# tar zxvf vsftpd-1.2.1.tar.gz
[root@15h98 vsftp1.2.1]# cd vsftpd-1.2.1
[root@15h98 vsftp1.2.1]# make
注意:这步有可能出现找不到/usr/local/share/man/man5,/usr/local/share/man/man8的错误,这时手动新建这两个目录再make

⑶安装编译好的VSFTPD
执行“make install”将编译好的二进制文件、手册等复制到相应目录。在fedora上,可能需要手动执行以下复制:
[root@15h98 vsftp1.2.1]# make install
[root@15h98 vsftp1.2.1]# cp vsftpd.conf.5 /usr/local/share/man/man5
[root@15h98 vsftp1.2.1]# cp vsftpd.8 /usr/local/share/man/man8
此外,“make install”没有复制简单的配置文件,建议执行以下命令:
[root@15h98 vsftp1.2.1]# cp vsftpd.conf /etc
以后启动vsftpd就会读入/etc/vsftpd.conf的配置。
补充:上面的make install把vsftpd复制到/usr/loca/sbin下,以后启动用vsftpd &即可。关闭方法是通过ps找到进程号,kill掉。
ps ax | grep vsftpd
2664 pts/0    S      0:00 vsftpd
kill -9 2664

安装后如果在别的机子上用ftp客户端FileZilla登录出现如下等待消息,则是fedora的防火墙没设置好:
状态:    正在等待重试 ...
状态:    正在连接 202.117.15.98:21...
状态:    连接建立,等待欢迎消息...
通过如下语句在iptables规则表中开放ftp端口
iptables -I INPUT -p tcp -m multiport --dport 21,20 -j ACCEPT
这次终于能够读到/var/ftp目录了。但是好景不长,在我直接把一个文件放上去报错后,以后再登录就登不上了,出现以下错误:
命令:    USER anonymous
返回:    331 Please specify the password.
命令:    PASS **************
返回:    230 Login successful.
状态:    已连接
状态:    读取目录列表...
命令:    PWD
返回:    257 "/"
命令:    TYPE I
返回:    200 Switching to Binary mode.
命令:    PASV
返回:    227 Entering Passive Mode (202,117,15,98,244,103)
命令:    LIST
错误:    连接超时
错误:    读取目录列表失败
重新启动linux后又可以登上了,真是奇怪!
这次我把vsftpd.conf中的几项改成如下:
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
在/var/ftp/下建立incoming目录。并把属性改成
drwxr-xrwx 2 root root 4096 04-16 08:56 incoming
这次从别的机子上登录,就可以向incoming目录上传文件了。
但是,问题又来了。当我再在ftp目录下建立了一个文件夹和一个文件后,它们的访问属性:
drwxr-xr-x 2 root root 4096 04-16 08:58 pub
-rw-r--r-- 1 root root   30 04-16 08:59 readme
这时再在别的机子上登录看到ftp下的内容竟然没有更新,看不到这新加的两个文件。后来发现要点击工具栏上的刷新目录和文件列表按钮才显示出这两个文件。看来是FIleZilla缓存了刚登陆ftp的文件列表,即使断开再登录(输入ftp地址后回车)几次读到的还是缓存的数据,无济于事。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值