高手进阶:Redhat Linux上vsftpd编译安装

;以root账户登录RedHat bashshell [root@redhat ~]# tar -zxvf vsftpd-2.0.5.tar.gz //解压vsftp source文件 [root@redhat ~]# cd vsftpd-2.0.5 //进入解压后的目录 [root@redhat vsftpd-2.0.5]# more INSTALL //看看安装说明 。比如要做什么工作 。是个英文文档. [root@redhat vsftpd-2.0.5]# useradd nobody //这里需要加一个nobody用户 。大家可以使用finger nobody查看下 。看是否有这个用户 。用就不需要加了 [root@redhat vsftpd-2.0.5]# mkdir /usr/share/empty //这一步同上 。服务器需要一个empty的空目录放在/usr/share/下 。可以使用ls /usr/share/empty查看 。如果存在就不需要了 。这步也可以跳过 如果需要开启匿名用户访问 , 需要做下面几步工作 [root@redhat vsftpd-2.0.5]# mkdir /var/ftp/ //创建供匿名用户使用的目录 [root@redhat vsftpd-2.0.5]# useradd -d /var/ftp ftp //创建ftp用户并且指定家目录为/var/ftp , 这个步骤一般的系统也有 。如果创建提示:user ftp exists(FTP用户存在)就表示此用户已经存在 。继续下一步 [root@redhat vsftpd-2.0.5]# chown root.root /var/ftp //设置/var/ftp , 也就是ftp用户的家目录属组和属主都是root , 为了安全 。这步还是需要的 [root@redhat vsftpd-2.0.5]# chmod og-w /var/ftp //更改权限 , 去掉属组和其他人的写权限 上面这写工作做完了 。下面就可以便宜了 [root@redhat vsftpd-2.0.5]# make //编译二进制文件 [root@redhat vsftpd-2.0.5]# make install //安装 , 安装的时候可以看到安装的相关文件 。[root@redhat vsftpd-2.0.5]# cp vsftpd.conf /etc/ //拷贝配置文件 [root@redhat vsftpd-2.0.5]# cp RedHat/vsftpd.pam /etc/pam.d/ftp //拷贝PAM安全验证文件此为验证文件所在的目录 [root@redhat vsftpd-2.0.5]# vi /etc/vsftpd.conf 然后按 , 跳到行尾 。设置 pam_server_name=ftp(要与你的PAM文件同名);userlist_enable=YES(用户列表的用户不允许登入服务器) 。然后:wq保存退出 [root@redhat vsftpd-2.0.5]# cp vsftpd.conf.5 /usr/local/man/man5 [root@redhat vsftpd-2.0.5]# cp vsftpd.8 /usr/local/man/man8 基本到这里 。所有工作就做完了 。但是还要说点东西 默认情况下vsftp是以超级守护进程(xinetd)运行的 。启动方式(二种方式) [root@redhat vsftpd-2.0.5]# service xinetd restart //重启超级守护进程就等于启动了vsftp 另外一个方式 , 就是独立运行需要修改配置文件 [root@redhat vsftpd-2.0.5]# vi /etc/vsftpd.conf 然后按 , 跳到行尾 。加上listen=YES 。然后:wq保存退出 这样就可以使用下面这条语句启动 [root@redhat vsftpd-2.0.5]# /usr/local/sbin/vsftpd & //后台启动vsftp [root@redhat vsftpd-2.0.5]# echo "/usr/local/sbin/vsftpd &" >> /etc/rc.local //追加到启动脚本上 上 面两种方式可随意使用 。我还对启动脚本做了一些实验(以service vsftpd start这种方式启动) , 最终还是失败了 。但是我想说 。我努力了 。由于本人对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 -M name 以及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服务器 。

推荐阅读