步骤
本次是在CentOS 6的版本上操作的。
说明:以下命令均在root用户下执行。
 
(1)安装vsftpd
没啥好说的一条命令搞定。
  1. $yum install vsftpd

中间会提示确认,输入“y”回车

启动vsftpd服务

  1. $service vsftpd start
 
管理vsftpd相关命令:
停止vsftpd:  
  1. #service vsftpd stop

重启vsftpd:

  1. $service vsftpd restart
(2)添加ftp用户
下面是添加ftpuser用户,设置根目录为/home/ftpuser,禁止此用户登录SSH的权限,并限制其访问其它目录。

增加用户ftpuser,指向目录/home/ftpuser,禁止登录SSH权限。

  1. <span style="white-space: normal; #ffffff;">$useradd -d /home/ftpuser -g ftp -s /sbin/nologin ftpuser

设置用户口令

  1. $passwd ftpuser
 
(3)配置防火墙
打开/etc/sysconfig/iptables文件
 
  1. $<span style="white-space: normal; #ffffff;">vi /etc/sysconfig/iptables

在REJECT行之前添加如下代码

-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

保存和关闭文件,重启防火墙

  1. $service iptables start
(4)重新启动vsftpd
每次配置完后都不要忘记重启vsftpd,以使设置生效
  1. $service vsftpd restart
 
(5)修改SELinux设置
不过即使打开了防火墙,这时通过FTP客户端还是不能访问,会报错误:
500 OOPS: cannot change directory:/home/ftpuser
500 OOPS: priv_sock_get_cmd

这里还需要修改SELinux设置。

通过命令getsebool查看设置
  1. $getsebool -a|grep ftp

通过命令setsebool进行设置

  1. $setsebool ftp_home_dir 1

再重新启动vsftpd
service vsftpd restart

现在可以用FTP客户端访问了

 
(6)用户访问目录限制
一般在设置FTP服务时都喜欢指定用户的访问路径,不能让用户在服务器上乱逛。
需要配置一下vsftpd.conf文件。
修改配置文件 vsftpd.conf

  1. $vi /etc/vsftpd/vsftpd.conf
打开vsftpd.conf文件后,修改或添加以下内容。
  1. <span>anonymous_enable=NO   #禁止匿名用户anonymous登录
  2. local_enable=YES        #允许本地用户登录
  3. write_enable=YES        #让登录的用户有写权限(上传,删除)
  4. #接下来的三条配置很重要
  5. #chroot_local_user设置了YES,那么所有的用户默认将被chroot,
  6. #也就用户目录被限制在了自己的home下,无法向上改变目录。
  7. #chroot_list_enable设置了YES,即让chroot用户列表有效。
  8. #★超重要:如果chroot_local_user设置了YES,那么chroot_list_file
  9. #设置的文件里,是不被chroot的用户(可以向上改变目录)
  10. #★超重要:如果chroot_local_user设置了NO,那么chroot_list_file
  11. #设置的文件里,是被chroot的用户(无法向上改变目录)
  12. chroot_list_enable=YES
  13. chroot_list_file=/etc/vsftpd/chroot_list    #控制根目录的用户列表文件
  14. user_config_dir=/etc/vsftpd/user_conf   #每个用户的配置文件存放目录
修改chroot_list文件,添加控制根目录用户 ftpuser
  1. $vi /etc/vsftpd/chroot_list
 

创建用户配置文件

  1. $mkdir /etc/vsftpd/user_conf
  2. #vi /etc/vsftpd/user_conf/ftpuser
在文件中设置ftpuser用户的访问路径,如下:
local_root=/data/www
 
(7)再次修改SELinux设置
以上步骤设置完成后,指定的ftp用户再连接到服务时根目录就指向/data/www下了。
但试试上传文件是不行的,这里还需要修改一处SELinux设置。
  1. $setsebool allow_ftpd_full_access 1
重新启动vsftpd

  1. <span>service vsftpd restart
 
(8)限制访问用户

到此FTP服务可以正常使用了,但除了root等系统用户,其他的用户都可以通过FTP服务连接到服务器上;
可我们只希望开放ftpuser用户,其他用户都不允许访问FTP服务。

  1. $vi /etc/vsftpd/vsftpd.conf

打开vsftpd.conf文件后,修改或添加以下内容。

  1. $userlist_enable=YES,用户访问控制列表有效,文件是/etc/vsftpd/user_list
  2. #userlist_deny=YES,/etc/vsftpd/user_list里的用户不能登录
  3. #userlist_deny=NO,只有/etc/vsftpd/user_list用户才可以登录
  4. #★重要:无论这里如何设置,只是进一步限制用户,只是在上面/etc/vsftpd/ftpusers
  5. #的效果上叠加。比如/etc/vsftpd/ftpusers里有root用户,即便是你设置了
  6. #userlist_deny=NO并且/etc/vsftpd/user_list有root,那root也是不能登录的!
  7. userlist_enable=YES
  8. userlist_deny=NO

设置user_list文件

  1. $vi /etc/vsftpd/user_list

清空user_list文件内容,只写上允许访问FTP服务的用户名

重新启动vsftpd

  1. $service vsftpd restart

Vsftpd 配置的更多相关文章

  1. linux vsftpd 配置

    linux 使用vsftpd 实现ftp上传 安装 vsftpd yum install -y vsftpd 配置vsftpd 备份配置文件后 将/etc/vsftpd/vsftpd.conf内容替换 ...

  2. Ubuntu 用vsftpd 配置FTP服务器

    网上的文章好难懂啊..只想要简单粗暴,弄好能用就行啊,复杂的以后研究不行吗...折腾好久,其实弄出来能用不就这么点内容吗... 本文在Ubuntu Server 14.04 amd64系统测试. Ma ...

  3. 运维之Centos apache vsftpd配置

    安装Apache yum install httpd -y chkconfig httpd on service httpd start 配置一下iptables iptables -I INPUT ...

  4. [转]Ubuntu 用vsftpd 配置FTP服务器

    FROM : http://www.cnblogs.com/CSGrandeur/p/3754126.html 网上的文章好难懂啊..只想要简单粗暴,弄好能用就行啊,复杂的以后研究不行吗...折腾好久 ...

  5. vsftpd配置参数详细整理

    vsftpd配置参数详细整理  -|白王斧三又干一 vsftpd配置参数详细整理     -|白王斧三又干一 发表于 2005-10-23 20:30:00   1.vsftpd配置参数详细整理#接受 ...

  6. ubuntu下vsftpd配置

    网上的文章好难懂啊..只想要简单粗暴,弄好能用就行啊,复杂的以后研究不行吗...折腾好久,其实弄出来能用不就这么点内容吗... 本文在Ubuntu Server 14.04 amd64系统测试. 安装 ...

  7. vsftpd配置虚拟用户

    #安装vsftpd yum -y install vsftpd #创建本地ftp账户 groupadd ftpuser useradd -g ftpuser -s /sbin/nologin ftpu ...

  8. Centos 6.5使用vsftpd配置FTP服务器教程

    Centos 6.5使用vsftpd配置FTP服务器教程什么是vsftpd vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序.特点是小巧轻快,安全易用.vsftpd 的名字代表”ver ...

  9. vsftpd配置手册(实用)

    作者: 木頭    来源: PHPChina 开源社区门户1.vsftpd配置参数详细整理 #接受匿名用户 anonymous_enable=YES #匿名用户login时不询问口令 no_anon_ ...

  10. centos 中的vsftpd 配置

    一.安装vsftpd 1.1 检查系统是否已经安装过vsftpd了 [root@localhost /]# rpm -aq vsftpd 如果返回结果显示: vsftpd--.el7.x86_64 # ...

随机推荐

  1. C# 计时器

    一.Stopwatch 主要用于测试代码段使用了多少时间 使用方法: Stopwatch sw=new Stopwatch(); sw.Start(); ... sw.Stop(); Console. ...

  2. Codeforces Round #350 (Div. 2) E 思维模拟

    给出一个合法的括号串 有LRD三种操作 LR分别是左右移动当前位置 且合法 D为删除这个括号和里面的所有 当删除完成后 位置向右移动 如果不能移动 就向左 比赛都是很久远的事情了 写这道题也是一时兴起 ...

  3. zepto源码--核心方法8(管理包装集)--学习笔记

    继续包装集过滤的相关函数的介绍,今天介绍与父元素相关的函数,parent, parents, closest, offsetParent parent 获取对象集合中每个元素的直接父元素. 与上篇文章 ...

  4. C语言 ---- 数组 iOS学习-----细碎知识点总结

    #pragma mark - 数组:用来存放同一数据类型的数据 // 数组的定义:类型说明符 数组名[常量表达式] = {值1, 值2, 值3...};    // 定义一个float类型的数组,用来 ...

  5. SynchronousQueue应用

    SynchronousQueue是无界的,是一种无缓冲的等待队列,但是由于该Queue本身的特性,在某次添加元素后必须等待其他线程取走后才能继续添加:可以认为SynchronousQueue是一个缓存 ...

  6. leetcode 257

    查找二叉树中根节点到叶子节点的所有路径: 本题有两种解法:递归解法和非递归解法,递归解法请参考:http://blog.csdn.net/booirror/article/details/477331 ...

  7. Struts2(一):怎么创建对应版本的struts.xml

    1.eclisep导航菜单:windows->preferences->Xml->Xml Catalog; 2.在Xml Catalog右侧,添加一个新的XML Catalog: 3 ...

  8. 响应式布局2--MATE

    随着高端手机(Andriod,Iphone,Ipod,WinPhone等)的盛行,移动互联应用开发也越来越受到人们的重视,用html5开发移动应用是最好的选择.然而,每一款手机有不同的分辨率,不同屏幕 ...

  9. C++复现经典游戏——扫雷

    国庆小长假,当大家都去看人山人海的时候,我独自一人狂码代码.这两天想要实现的内容是Windows上的一个经典游戏——扫雷.相信90后和一些上班族对此并不陌生.然而,从win8开始,扫雷就不再是Wind ...

  10. viewpaper 抽屉

    引用:http://www.apkbus.com/android-18384-1-1.html 在为ViewFlipper视图切换增加动画和Android中实现视图随手势移动中实现了视图随手势切换,现 ...