vsftpd配置详解之配置vsftpd服务

运维 系统运维
vsftpd配置详解:Linux是一种开源的而且安全的操作系统,已经深入人心。作为Linux的一种流行发行版本,Ubuntu的使用更为普及。vsftpd作为Linux下一种最为方便的FTP程序,也为人们所推崇。本文讲述的是vsftpd配置详解之配置vsftpd服务。

配置vsftpd服务:

  服务的启动与停止

  启动服务之前,我们先编辑配置文件/etc/vsftpd/vsftpd.conf. 打开配置文件后可以看到许多以“#”开始的行,这些行都是注释行,大多是帮助信息,可以仔细阅读。vsftpd.conf文件的所有项目都是以“参数=值”来设置的,对格式要求比较严格,必须严格区分大小写,等号两边不能有空格,每行的最后也不能有空格。每个参数都有一个默认值,没有在配置文件中明确指定的参数就会使用默认值。我们这里不理会配置文件本来的信息,把所有内容都删掉或注释掉,最后加上下面四行,每行右边的//及后的文字是含义说明,不要输入到文件中:

  1.   listen=yes //vsftpd工作在standalone 模式下  
  2.  
  3.   anonymous_enable=yes //允许匿名用户登陆服务器  
  4.  
  5.   local_enable=yes //允许本地用户登录到服务器  
  6.  
  7.   pam_service_name=vsftpd //使用PAM认证  
  8.  

  vsftpd有两种工作模式,standalone模式和xinetd守护进程模式,第1行就是让其工作在standalone模式下。此种模式中,每次修改配置文件必须重新启动vsftpd服务才能生效,关于两种模式在后面有详细介绍。我们安装时还把 Redhat 目录下的 vsftpd.pam 文件复制成了/etc/pam.d/vsftpd 文件。这个文件就是本地用户登陆的 pam 验证配置文件。关于这个文件我们会在后面具体介绍。这里我们要知道,必须得有这个配置文件,而且主配置文件里要加上 pam_service_name=vsftpd语句,我们才能让本地用户登陆。用以下命令启动服务:

  1.   # /usr/local/sbin/vsftpd /etc/vsftpd/vsftpd.conf &  
  2.  

  为保证服务确实启动,我们用如下命令检测:

  1.   # netstat -an |grep 21  
  2.  
  3.   tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN  
  4.  

  我们看到服务器已经打开了tcp21端口,表明ftp确实已经启动。再登录服务器:

  1.   # ftp 127.0.0.1  
  2.  
  3.   Connected to 127.0.0.1.  
  4.  
  5.   220 (vsFTPd 2.0.5)  
  6.  
  7.   530 Please login with USER and PASS.  
  8.  
  9.   530 Please login with USER and PASS.  
  10.  
  11.   KERBEROS_V4 rejected as an authentication type  
  12.  
  13.   Name (127.0.0.1:root): ftp  
  14.  
  15.   331 Please specify the password.  
  16.  
  17.   Password:  
  18.  
  19.   230 Login successful.  
  20.  

  这时我们已经用匿名用户(用户名ftp或anonymous,密码任意)登录到服务器了,还可以用本地用户登录。我们做测试时建议使用如上所示的ftp命令(windows、Linux及Unix都带这个命令,用法都是一样的)来登录服务器,这样可以看到更详细的信息,对于我们调试服务器是非常有帮助的。最简单的ftp服务器就已经达建起来了。使用如下命令关闭ftp服务:

  1.   # killall vsftpd  
  2.  

  服务启动脚本的制作

  在standalone 模式中,经常用上面的命令启动服务比较麻烦,我们做一个脚本来启动和停止服务。

  建立一个新文件/etc/rc.d/init.d/vsftpd,把以下内容复制到文件中:

  1.   #!/bin/bash  
  2.  
  3.   #  
  4.  
  5.   # vsftpd This shell script takes care of starting and stopping  
  6.  
  7.   # standalone vsftpd.  
  8.  
  9.   #  
  10.  
  11.   # chkconfig: - 60 50  
  12.  
  13.   # description: Vsftpd is a ftp daemon, which is the program \  
  14.  
  15.   # that answers incoming ftp service requests.  
  16.  
  17.   # processname: vsftpd  
  18.  
  19.   # config: /etc/vsftpd/vsftpd.conf  
  20.  
  21.   # Source function library.  
  22.  
  23.   . /etc/rc.d/init.d/functions  
  24.  
  25.   # Source networking configuration.  
  26.  
  27.   . /etc/sysconfig/network  
  28.  
  29.   # Check that networking is up.  
  30.  
  31.   [ ${NETWORKING} = "no" ] && exit 0  
  32.  
  33.   [ -x /usr/local/sbin/vsftpd ] || exit 0  
  34.  
  35.   RETVAL=0 
  36.  
  37.   prog="vsftpd" 
  38.  
  39.   start() {  
  40.  
  41.   # Start daemons.  
  42.  
  43.   if [ -d /etc/vsftpd ] ; then  
  44.  
  45.   for i in `ls /etc/vsftpd/*.conf`; do  
  46.  
  47.   site=`basename $i .conf`  
  48.  
  49.   echo -n $"Starting $prog for $site: "  
  50.  
  51.   /usr/local/sbin/vsftpd $i &  
  52.  
  53.   RETVAL=$?  
  54.  
  55.   [ $RETVAL -eq 0 ] && {  
  56.  
  57.   touch /var/lock/subsys/$prog  
  58.  
  59.   success $"$prog $site"  
  60.  
  61.   }  
  62.  
  63.   echo  
  64.  
  65.   done  
  66.  
  67.   else  
  68.  
  69.   RETVAL=1 
  70.  
  71.   fi  
  72.  
  73.   return $RETVAL  
  74.  
  75.   }  
  76.  
  77.   stop() {  
  78.  
  79.   # Stop daemons.  
  80.  
  81.   echo -n $"Shutting down $prog: "  
  82.  
  83.   killproc $prog  
  84.  
  85.   RETVAL=$?  
  86.  
  87.   echo  
  88.  
  89.   [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog  
  90.  
  91.   return $RETVAL  
  92.  
  93.   }  
  94.  
  95.   # See how we were called.  
  96.  
  97.   case "$1" in  
  98.  
  99.   start)  
  100.  
  101.   start  
  102.  
  103.   ;;  
  104.  
  105.   stop)  
  106.  
  107.   stop  
  108.  
  109.   ;;  
  110.  
  111.   restart|reload)  
  112.  
  113.   stop  
  114.  
  115.   start  
  116.  
  117.   RETVAL=$?  
  118.  
  119.   ;;  
  120.  
  121.   condrestart  
  122.  
  123.   if [ -f /var/lock/subsys/$prog ]; then  
  124.  
  125.   stop  
  126.  
  127.   start  
  128.  
  129.   RETVAL=$?  
  130.  
  131.   fi  
  132.  
  133.   ;;  
  134.  
  135.   status)  
  136.  
  137.   status $prog  
  138.  
  139.   RETVAL=$?  
  140.  
  141.   ;;  
  142.  
  143.   *)  
  144.  
  145.   echo $"Usage: $0 {start|stop|restart|condrestart|status}"  
  146.  
  147.   exit 1  
  148.  
  149.   esac  
  150.  
  151.   exit $RETVAL  
  152.  

  保存文件,再给该文件加上执行权限:

  1.   # chmod 755 /etc/rc.d/init.d/vsftpd  
  2.  

  这样我们就可以通过下面的方法来管理服务了:

  1.   # service vsftpd {start|stop|restart|condrestart|status}  
  2.  

  例如重新启动服务:

  1.   # service vsftpd restart  
  2.  
  3.   Shutting down vsftpd: [OK ]  
  4.  
  5.   Starting vsftpd for vsftpd: [OK ]  

【编辑推荐】

  1. vsftpd配置详解之简介篇
  2. vsftpd配置详解之软件安装和卸载
  3. vsftpd配置详解之配置vsftpd服务
  4. Vsftpd配置详解之配置文件详解
  5. Vsftpd配置详解之Vsftpd配置下高级操作
  6. Vsftpd配置详解之与MySql的结合
  7. vsftpd配置详解之实现加密数据传输
责任编辑:zhaolei 来源: CSDN
相关推荐

2011-03-02 13:23:42

Vsftpd配置

2011-03-02 13:12:37

vsftpd配置

2011-03-02 10:19:44

2011-03-02 11:25:10

vsftpd配置

2011-03-02 13:28:33

Vsftpd配置

2011-03-02 11:28:28

vsftpd配置

2011-03-04 16:34:03

vsFTPd

2011-03-02 10:41:41

Vsftpd安装

2011-02-24 09:14:37

vsFTPd虚拟用户

2011-02-24 10:18:41

CentOS配置vsftpd

2011-02-23 17:23:35

linux vsftpd

2011-02-23 15:50:04

Linuxvsftpd

2011-03-04 10:05:10

Vsftpd虚拟用户

2011-03-01 09:44:04

ubuntuvsftpd

2011-02-23 15:50:04

Linuxvsftpd

2010-01-13 13:50:53

CentOS Vsft

2011-03-04 10:03:44

VSFTPD虚拟服务器

2011-02-22 13:28:43

Linuxvsftpd配置

2010-01-13 14:45:25

CentOS配置

2010-02-22 17:45:50

CentOS VSFT
点赞
收藏

51CTO技术栈公众号