vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用,下面直接上干货。

一、安装vsftp

以管理员的身份使用yum命令安装vsftp:

[root@localhost ~]#yum install vsftpd

根据系统yum的不同,可能无法找到软件包源,可以按照这里的方法解决

二、设置vsftp开机自动启动

1、查看开机自动启动服务项目

[root@localhost ~]# chkconfig --list

2、设置vsftpd服务开机自动启动

[root@localhost ~]# chkconfig --level 35 vsftpd on

三、配置环境

1、添加vsftp账号,指定账号权限

■ 添加ftp账号www,指定/home/www为www的宿主目录,该账户号默认不能登陆系统。

[root@localhost ~]# useradd -s /bin/nologin -d /home/www www  #nologin的位置通常在/usr/sbin/nologin或/sbin/nologin位置,如果指定错误则无法登陆。

■ 修改账号密码。

[root@localhost ~]# passwd www

■ 修改指定目录权限。

[root@localhost ~]# chown -R www /home/www  #-R参数:递归设置/home/www目录及期子目录的所有者为用户www。

2、配置vsftp

编辑vsftp的配置文件/etc/vsftpd/vsftpd.conf,修改配置文件相关配置项,如下:

anonymous_enable=NO  #不允许匿名登陆

ascii_upload_enable=YES #上传时允许ASCII模式

ascii_download_enable=YES #下载时允许ASCII模式

local_enable=YES  #允许本地用户登录ftp服务器,默认是允许,不包含id为500以下用户陆

write_enable=YES  #允许用户具有在ftp服务器文件中具有写的权限

chroot_local_user=YES  ##是否将所有用户锁定在主目录,YES为启用 NO禁用

chroot_list_enable=YES  #是否启动锁定用户的名单,YES为启用 NO禁用

chroot_list_file=/etc/vsftpd/chroot_list  #当chroot_list_enable=YES时,该项有效,禁用的列表名单格式为一行一个用户, 如果名单里面有一个test01的用户, 则test01用户不会锁定在主目录,用户将可以自由切换目录。

举例:

情况一:

现在有 test1 test2 test3 这三个ftp的用户,想让1跟2用户锁定主目录不允许切换到其他目录, 但是允许3用户自由切换那么/etc/vsftpd/chroot_list列表名单如下:

test3

也就说chroot_local_user=YES,并且chroot_list_enable=YES的时候,/etc/vsftpd/chroot_list名单里面添加的是排除锁定主目录的用户名单。

情况二:

如果chroot_local_user=NO并且chroot_list_enable=YES的时候,那么/etc/vsftpd/chroot_list列表名单如下:

test1

test2

情况三:

如果chroot_local_user=YES 并且 chroot_list_enable=NO 的时候那列表名单也就不生效了,因此满足上面的条件时,所有的FTP用户将全部锁定在主目录。

ls_recurse_enable=YES  #启用递归

listen=YES  #使用IPV4时设置为YES

listen_ipv6=NO   #使用IPV6时设置为YES

local_root=/data/ftproot    #指定根目录,如果未指定,用户的宿主目录将作为FTP主目录

use_localtime=YES  # use localtime

seccomp_sandbox=NO     #turn off for seccomp filter ( if you cannot login, add this line )

3、修改shells配置

编辑shell的配置文件/etc/shells,如果文件中没有/sbin/nologin或者usr/sbin/nologin,在文件中追加该上即可。

4、配置防火墙

编辑/etc/sysconfig/iptables文件,在REJECT行之前添加如下命令:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT  #从上一行中进行复制粘贴后修改端口号为21即可

添加后保存,然后重启防火墙服务。

[root@localhost ~]# service iptables restart  #其它命令:service iptables stop停止防止墙服务

六、启动vsftp并测试登陆

启动vsftp服务

[root@localhost ~]# service vsftpd start #其它命令:service vsftpd restart重启FTP服务、service vsftpd stop停止FTP服务

服务成功启动后,用FTP客户端登陆即可(推荐使用Xshell ),ftpadmin管理目录是/www/web。

七、错误处理

1、500 OOPS: cannot change directory:/home/www

该错误原因是在CentOS系统下默认安装了SELinux,没有开启FTP支持,所以访问时都被阻止了,需要手动开启。

[root@localhost ~]# getsebool -a|grep ftp   #查看所有ftp设置

[root@localhost ~]# setsebool ftp_home_dir 1  #setsebool -P ftp_home_dir 1 使用P参数实现重启后ftp_home_dir自动为1

【Linux笔记】CentOS yum 安装 vsftpd的更多相关文章

  1. centOS Linux下用yum安装mysql

    centOS Linux下用yum安装mysql      第一篇:安装和配置MySQL   第一步:安装MySQL   [root@192 local]# yum -y install mysql- ...

  2. centos yum 安装 mongodb 以及php扩展

    centos yum 安装 mongodb 以及php扩展 投稿:hebedich 字体:[增加 减小] 类型:转载 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用 ...

  3. CentOS yum 安装LAMP PHP5.4版本

    CentOS yum 安装LAMP PHP5.4版本 [日期:2015-06-04] 来源:Linux社区  作者:rogerzhanglijie [字体:大 中 小]     Linux系统版本:C ...

  4. CentOS yum安装mcrypt

    CentOS yum安装mcrypt   本篇排错的前提是只想用yum安装,不想使用源码包编译安装. php依赖一下包:   #yum install libmcrypt libmcrypt-deve ...

  5. CentOS yum安装mcrypt详细图解教程

    CentOS yum安装mcrypt详细图解教程 在Linux的发行版CentOS 6.3 系统下,LAMP(Linux+Apache+Mysql+php)环境搭建好后发现PHPMyadmin提示 “ ...

  6. centos yum 安装php5.6

    centos yum 安装php5.6 卸载 php之前的版本: yum remove -y php-common 配置源 CentOS 6.5的源 rpm -Uvh http://ftp.iij.a ...

  7. 【转】CentOS yum安装和卸载软件的使用方法

    在CentOS yum安装和卸载软件的使用方法安装方法安装一个软件时.   CentOS yum -y install httpd安装多个相类似的软件时   CentOS yum -y install ...

  8. linux下使用yum安装mysql、tomcat、httpd

    一.linux下使用yum安装mysql   1.安装 查看有没有安装过:           yum list installed mysql*           rpm -qa | grep m ...

  9. [mysql] linux下使用yum安装mysql

    From: http://www.2cto.com/database/201207/141878.html linux下使用yum安装mysql   1.安装 查看有没有安装过:           ...

随机推荐

  1. Winform程序拖拽文件到窗体

    1:首先需要将接收拖拽的窗体属性AllowDrop设置为True. 2:编写窗体拖拽进入(DragEnter)和拖拽完成(DragDrop)事件. private void FrmCode_DragE ...

  2. 【Hadoop】Hadoop 中 RPC框架原理、代码示例

    0.内容 1.hadoop中的RPC框架封装思想 2.Hadoop RPC 实现方法 3.服务调用动态转发和负载均衡的实现思考 4.协议代码: package com.ares.hadoop.rpc; ...

  3. 20155215 2016-2017-2《Java程序设计》课程总结

    20155215 2016-2017-2<Java程序设计>课程总结 一.(按顺序)每周作业链接汇总 预备作业1: 对于JAVA课程本身的期望和理解.以及期望的师生关系是什么样的,自己印象 ...

  4. 一个命令安装lnmp

    安装LNMP执行:wget -c http://soft.vpser.net/lnmp/lnmp1.3-full.tar.gz && tar zxf lnmp1.3-full.tar. ...

  5. [cogs347]地震

    COGS:地震(平衡树) COGS上一道题...文件名是equake 还是又打了一遍板子... 加个lazy标记就行了... 注意查询时先下传标记(lazy) // It is made by XZZ ...

  6. 探寻ASP.NET MVC鲜为人知的奥秘(3):寻找多语言的最佳实践方式

    如果你的网站需要被世界各地的人访问,访问者会使用各种不同的语言和文字书写习惯,那么创建一个支持多语言的网站就是十分必要的了,这一篇文章就讲述怎么快速合理的创建网站对多语言的支持.接下来通过一个实例来讲 ...

  7. win10 Docker Toolbox 默认路径不能写问题

    2018-8-30 这几天正学习docker,win10系统家庭版,未升级成专业版,只能安装Docker Toolbox来练习, 安装好后准备做个镜像,默认路径新建目录却提示不允许创建 由于Docke ...

  8. Vue 编程之路(一)——父子组件之间的数据传递

    最近公司的一个项目中使用 Vue 2.0 + element UI 实现一个后台管理系统的前端部分,属于商城类型.其中部分页面是数据管理页,所以有很多可以复用的表格,故引入自定义组件.在这里分享一下开 ...

  9. Java如何调用shell脚本的

    有些时候会碰到这样的场景:java的功能里面要嵌入一个功能点,这个功能是通过是shell脚本实现的.这种时候就需要Java对脚本调用的支持了. 测试环境 Ubuntu16.04 i3-6100,12G ...

  10. PytorchZerotoAll学习笔记(五)--逻辑回归

    逻辑回归: 本章内容主要讲述简单的逻辑回归:这个可以归纳为二分类的问题. 逻辑,非假即真.两种可能,我们可以联想一下在继电器控制的电信号(0 or 1) 举个栗子:比如说你花了好几个星期复习的考试(通 ...