首页 运维 正文
vsftpd配置详解之配置vsftpd服务

 2022-10-23    303  

配置vsftpd服务:

  服务的启动与停止

vsftpd配置详解之配置vsftpd服务

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

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

      #/usr/local/sbin/vsftpd/etc/vsftpd/vsftpd.conf& 
  •   为保证服务确实启动,我们用如下命令检测:

      #netstat-an|grep21 
  •   tcp000.0.0.0:210.0.0.0:*LISTEN
  •   我们看到服务器已经打开了tcp21端口,表明ftp确实已经启动。再登录服务器:

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

      #killallvsftpd 
  •   服务启动脚本的制作

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

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

      #!/bin/bash 
  •   #
  •   #vsftpdThisshellscripttakescareofstartingandstopping
  •   #standalonevsftpd.
  •   #
  •   #chkconfig:-6050
  •   #description:Vsftpdisaftpdaemon,whichistheprogram\
  •   #thatanswersincomingftpservicerequests.
  •   #processname:vsftpd
  •   #config:/etc/vsftpd/vsftpd.conf
  •   #Sourcefunctionlibrary.
  •   ./etc/rc.d/init.d/functions
  •   #Sourcenetworkingconfiguration.
  •   ./etc/sysconfig/network
  •   #Checkthatnetworkingisup.
  •   [${NETWORKING}="no"]&&exit0
  •   [-x/usr/local/sbin/vsftpd]||exit0
  •   RETVAL=0
  •   prog="vsftpd"
  •   start(){
  •   #Startdaemons.
  •   if[-d/etc/vsftpd];then
  •   foriin`ls/etc/vsftpd/*.conf`;do
  •   site=`basename$i.conf`
  •   echo-n$"Starting$progfor$site:"
  •   /usr/local/sbin/vsftpd$i&
  •   RETVAL=$?
  •   [$RETVAL-eq0]&&{
  •   touch/var/lock/subsys/$prog
  •   success$"$prog$site"
  •   }
  •   echo
  •   done
  •   else
  •   RETVAL=1
  •   fi
  •   return$RETVAL
  •   }
  •   stop(){
  •   #Stopdaemons.
  •   echo-n$"Shuttingdown$prog:"
  •   killproc$prog
  •   RETVAL=$?
  •   echo
  •   [$RETVAL-eq0]&&rm-f/var/lock/subsys/$prog
  •   return$RETVAL
  •   }
  •   #Seehowwewerecalled.
  •   case"$1"in
  •   start)
  •   start
  •   ;;
  •   stop)
  •   stop
  •   ;;
  •   restart|reload)
  •   stop
  •   start
  •   RETVAL=$?
  •   ;;
  •   condrestart
  •   if[-f/var/lock/subsys/$prog];then
  •   stop
  •   start
  •   RETVAL=$?
  •   fi
  •   ;;
  •   status)
  •   status$prog
  •   RETVAL=$?
  •   ;;
  •   *)
  •   echo$"Usage:$0{start|stop|restart|condrestart|status}"
  •   exit1
  •   esac
  •   exit$RETVAL
  •   保存文件,再给该文件加上执行权限:

      #chmod755/etc/rc.d/init.d/vsftpd 
  •   这样我们就可以通过下面的方法来管理服务了:

      #servicevsftpd{start|stop|restart|condrestart|status} 
  •   例如重新启动服务:

      #servicevsftpdrestart 
  •   Shuttingdownvsftpd:[OK]
  •   Startingvsftpdforvsftpd:[OK]
  • 原文链接:https://77isp.com/post/8607.html

    =========================================

    https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。