【Linux笔记】CentOS yum 安装 vsftpd
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的更多相关文章
- centOS Linux下用yum安装mysql
centOS Linux下用yum安装mysql 第一篇:安装和配置MySQL 第一步:安装MySQL [root@192 local]# yum -y install mysql- ...
- centos yum 安装 mongodb 以及php扩展
centos yum 安装 mongodb 以及php扩展 投稿:hebedich 字体:[增加 减小] 类型:转载 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用 ...
- CentOS yum 安装LAMP PHP5.4版本
CentOS yum 安装LAMP PHP5.4版本 [日期:2015-06-04] 来源:Linux社区 作者:rogerzhanglijie [字体:大 中 小] Linux系统版本:C ...
- CentOS yum安装mcrypt
CentOS yum安装mcrypt 本篇排错的前提是只想用yum安装,不想使用源码包编译安装. php依赖一下包: #yum install libmcrypt libmcrypt-deve ...
- CentOS yum安装mcrypt详细图解教程
CentOS yum安装mcrypt详细图解教程 在Linux的发行版CentOS 6.3 系统下,LAMP(Linux+Apache+Mysql+php)环境搭建好后发现PHPMyadmin提示 “ ...
- centos yum 安装php5.6
centos yum 安装php5.6 卸载 php之前的版本: yum remove -y php-common 配置源 CentOS 6.5的源 rpm -Uvh http://ftp.iij.a ...
- 【转】CentOS yum安装和卸载软件的使用方法
在CentOS yum安装和卸载软件的使用方法安装方法安装一个软件时. CentOS yum -y install httpd安装多个相类似的软件时 CentOS yum -y install ...
- linux下使用yum安装mysql、tomcat、httpd
一.linux下使用yum安装mysql 1.安装 查看有没有安装过: yum list installed mysql* rpm -qa | grep m ...
- [mysql] linux下使用yum安装mysql
From: http://www.2cto.com/database/201207/141878.html linux下使用yum安装mysql 1.安装 查看有没有安装过: ...
随机推荐
- Java使用POI导出excel(上)——基本操作
相关的介绍参考自:http://zc985552943.iteye.com/blog/1491546 一.概述 1.概念 受上文博文博主的启发,有必要先对excel的各个概念先做了解! //上述基本都 ...
- linux内存碎片的概念
一般在内核术语中的“碎片”都是基于物理内存而言的,我没有太看懂你得出碎片是针对地址空间这个结论的逻辑.但我认为,既然你知道了malloc是用户空间调用的,那么你所谓的碎片也是从用户空间的视角而言的,但 ...
- 20155233 2016-2017-2《Java程序设计》课程总结
20155233 2016-2017-2<Java程序设计>课程总结 每周作业链接汇总 预备作业1:预习去写博客,如何达到理想的师生关系. 预备作业2:对自己C语言的学习进行了解与认识. ...
- 20155329胡佩伦《Java程序设计》第2周学习总结
学号 20155329 <Java程序设计>第2周学习总结 教材学习内容总结 基本类型 整数(short.int.long) 字节(byte) 浮点数(float/double) 字符(c ...
- molokai
git clone https://github.com/windy/ruby-vimrc.git~/.vim/colors/
- js获取上月的最后一天
一.问题: 在最近的开发中遇到一个需求,需要初始化默认时间为上月的最后一天 而在日历中这个值在每个月都不是固定的 二.分析: 问题可以转化为,获取指定月份时间的月末最后一天,下边是代码,供大家参考 f ...
- Python中的对象引用、浅拷贝与深拷贝
最近项目中遇到一个Python浅拷贝机制引起的bug,由于对于Python中对象引用.赋值.浅拷贝/深拷贝机制没有足够的认识,导致调试了很久才发现问题,这里简单记录一下相关概念. 在Python的设计 ...
- iOS 小技巧
投影效果 scanBtn.layer.shadowColor = [UIColorblackColor].CGColor;//shadowColor阴影颜色 scanBtn.layer.sha ...
- 对posintion属性的简单认识,对于还在纠结的同学们,有一定的帮助
position的四个属性值: relative ,absolute ,fixed,static 下面分别讲述这四个属性,以简单代码表示 <div id="parent" ...
- javaweb(三十一)——国际化(i18n)
一.国际化开发概述 软件的国际化:软件开发时,要使它能同时应对世界不同地区和国家的访问,并针对不同地区和国家的访问,提供相应的.符合来访者阅读习惯的页面或数据. 国际化(internationaliz ...