以root账户登录RedHatbashshell
[root@redhat~]#tar-zxvfvsftpd-2.0.5.tar.gz//解压vsftpsource文件
[root@redhat~]#cdvsftpd-2.0.5//进入解压后的目录
[root@redhatvsftpd-2.0.5]#moreINSTALL//看看安装说明。比如要做什么工作。是个英文文档。
[root@redhatvsftpd-2.0.5]#useraddnobody//这里需要加一个nobody用户。大家可以使用fingernobody查看下。看是否有这个用户。用就不需要加了
[root@redhatvsftpd-2.0.5]#mkdir/usr/share/empty//这一步同上。服务器需要一个empty的空目录放在/usr/share/下。可以使用ls/usr/share/empty查看。如果存在就不需要了。这步也可以跳过
如果需要开启匿名用户访问,需要做下面几步工作
[root@redhatvsftpd-2.0.5]#mkdir/var/ftp///创建供匿名用户使用的目录
[root@redhatvsftpd-2.0.5]#useradd-d/var/ftpftp//创建ftp用户并且指定家目录为/var/ftp,这个步骤一般的系统也有。如果创建提示:userftpexists(FTP用户存在)就表示此用户已经存在。
继续下一步
[root@redhatvsftpd-2.0.5]#chownroot.root/var/ftp//设置/var/ftp,也就是ftp用户的家目录属组和属主都是root,为了安全。这步还是需要的
[root@redhatvsftpd-2.0.5]#chmodog-w/var/ftp//更改权限,去掉属组和其他人的写权限
上面这写工作做完了。下面就可以便宜了
[root@redhatvsftpd-2.0.5]#make//编译二进制文件
[root@redhatvsftpd-2.0.5]#makeinstall//安装,安装的时候可以看到安装的相关文件。
[root@redhatvsftpd-2.0.5]#cpvsftpd.conf/etc///拷贝配置文件
[root@redhatvsftpd-2.0.5]#cpRedHat/vsftpd.pam/etc/pam.d/ftp//拷贝PAM安全验证文件此为验证文件所在的目录
[root@redhatvsftpd-2.0.5]#vi/etc/vsftpd.conf
然后按,跳到行尾。设置pam_server_name=ftp(要与你的PAM文件同名);userlist_enable=YES(用户列表的用户不允许登入服务器)。然后:wq保存退出
[root@redhatvsftpd-2.0.5]#cpvsftpd.conf.5/usr/local/man/man5
[root@redhatvsftpd-2.0.5]#cpvsftpd.8/usr/local/man/man8
基本到这里。所有工作就做完了。但是还要说点东西
默认情况下vsftp是以超级守护进程(xinetd)运行的。
启动方式(二种方式)
[root@redhatvsftpd-2.0.5]#servicexinetdrestart//重启超级守护进程就等于启动了vsftp
另外一个方式,就是独立运行需要修改配置文件
[root@redhatvsftpd-2.0.5]#vi/etc/vsftpd.conf
然后按,跳到行尾。加上listen=YES.然后:wq保存退出
这样就可以使用下面这条语句启动
[root@redhatvsftpd-2.0.5]#/usr/local/sbin/vsftpd&//后台启动vsftp
[root@redhatvsftpd-2.0.5]#echo"/usr/local/sbin/vsftpd&">>/etc/rc.local//追加到启动脚本上
上面两种方式可随意使用。我还对启动脚本做了一些实验(以servicevsftpdstart这种方式启动),最终还是失败了。但是我想说。我努力了。由于本人对shell编程不是很了解。未能写出一个使用的脚本,哎。学!可能还是有办法解决。使用RPM方式安装一个vsftp,然后看看init.d里面的脚本是怎么写的。
下面贴一个别人的关于配置的文章
#匿名用户
anonymous_enable=NO
#anon_mkdir_write_enable=YES
#anon_upload_enable=YES
#本地用户能否登陆
#local_enable=YES
#是否可写
write_enable=YES
#VSFTPD独立运行(用vsftpd/etc/vsftpd.conf&)以及下载速度的限制
listen=YES
max_clients=600
max_per_ip=5
tcp_wrappers=YES
connect_from_port_20=YES
#anon_max_rate=51200(56k)
#local_max_rate=512000(560k)
#如何更改路径
#anon_root=/var/ftp/pub
#local_root=/var/ftp
#如何随意增加一个用户目录
通过useradd-d/path/dir-Mname以及chmod?/path/dir可以达到
#如何对磁盘限额
用quota对/etc/fstab进行限制,然后对特定用户进行限制
补充:
补充一:如何把用户限制在家目录中呢?
我们要自己建一个文件,在/etc目录中
#touch/etc/vsftpd.chroot_list
以beinan这个用户为例
在vsftpd.chroot_list这个文件中,把beinan添上去就行。
然后改/etc/vsftpd/vsftpd.conf文件,找如下的两行
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd.chroot_list
把前面的#号去掉,也就是这样的
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
如果没有这样的两行,就可以自己添加上去也是一样的。
设置好后,重新vsFTPD服务器。
补充二:打开vsFTP服务器的日志功能:
把下面xferlog_file前面的#号对掉,也就是把vsftp的log功能打开,这样我们就能在/var/log目录下查看vsftpd.log.这是vsFTP的日志功能,这对于我们来说是极为重要的。
#xferlog_file=/var/log/vsftpd.log
补充三:如何让绑定IP到vsFTP?也就是说,如何让用户只能通过某个IP来访问FTP.其实这个功能很有意思。如果绑定的是内网的IP,外部是没有办法访问的。如果绑定的是对外服务的IP,内网也只能通过对外服务的IP来访问FTP
在/etc/vsftpd/vsftpd.conf中加一行,以我的局域网为例,请看第一帖中的操作环境,这样外网就不能访问我的FTP了,内网也可能通过192.168.0.2来访问FTP
listen_address=192.168.0.2
加完后,要重启vsFTP服务器。