我使用的是CentOS6安装的vsftpd,转载请注明出处,以下是我的记录:

#查看是否已经安装了vsfptd

vsftpd -v

#安装

yum -y install vsftpd

#创建:chroot_list 文件

touch /etc/vsftpd/chroot_list

----- 配置虚拟用户登录 -----

首先安装 FTP 虚拟用户需要用到的软件及认证模块

yum install pam* db4* --skip-broken –y

#创建一个ftpusers.txt文件

vim /etc/vsftpd/ftpusers.txt

#写入账号及密码,用来保存虚拟用户账号及密码信息,格式是:比如第1行为账号,第2行就是秘密,依此类推:

test1

test2

注意:如果直接复制以上账号密码会自动在后面添加空格,导致登录不成功。

#修改权限:

chmod  /etc/vsftpd/ftpusers.txt

#生成虚拟用户数据库文件:

需要注意的是,以后对虚拟用户的增删操作完之后需要再次执行此命令,使其生成新的数据文件。

db_load -T -t hash -f /etc/vsftpd/ftpusers.txt /etc/vsftpd/vsftpd_login.db

#修改权限:

chmod  /etc/vsftpd/vsftpd_login.db

#设置PAM验证文件,并制定虚拟用户数据库文件进行读取
对原验证文件备份后进行更改:

cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.back

#修改/etc/pam.d/vsftpd文件:

vim /etc/pam.d/vsftpd

在最顶部添加以下两项:

auth       sufficient   pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient pam_userdb.so db=/etc/vsftpd/vsftpd_login

#创建虚拟用户配置目录,用来单独配置不同虚拟用户访问不同目录等。

mkdir /etc/vsftpd/vsftpd_user_conf

#创建一个与虚拟用户同名称的文件,用来单独配置这个虚拟用户的访问目录。

vim /etc/vsftpd/vsftpd_user_conf/test1

#写入配置内容:

local_root=/home/www/test1
write_enable=YES
anon_world_readable_only=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

#创建test1用户访问的目录:

mkdir -p /home/www/test1

#创建 vsftpd 映射本地用户:

所有的 FTP 虚拟用户需要使用一个系统用户,这个系统用户不需要密码,也不需要登录。 主要用来做虚拟用户映射使用。

useradd -d /home/www -s /sbin/nologin ftpuser

#设置权限:

chown -R ftpuser:ftpuser /home/www

#备份vsftpd.conf文件:

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.back

#清空vsftpd.conf内容:

cat /dev/null > /etc/vsftpd/vsftpd.conf

#修改

vim /etc/vsftpd/vsftpd.conf

写入以下内容:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
idle_session_timeout=600
data_connection_timeout=6
listen=YES
listen_port=21
allow_writeable_chroot=YES
local_root=/home/www
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd/user_list
pasv_enable=YES
pasv_min_port=10240
pasv_max_port=10260
pam_service_name=vsftpd
guest_enable=YES
guest_username=ftpuser
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
reverse_lookup_enable=NO

#然后在防火墙规则(CentOS6)

vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 20:21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport : -j ACCEPT

CentOS7

systemctl start firewalld
firewall-cmd --zone=public --add-port=-/tcp --permanent
firewall-cmd --zone=public --add-port=-/tcp --permanent
firewall-cmd --reload

#如果用的云服务器,还要在云服务器在安全组设置开放端口:20-21和10240-10260

#刚安装的vsftpd默认是没有启动的。全部配置好了之后启动以下vsftpd。

#vsftpd开启、关闭、重启服务(以下只适合CentOS6及CentOS6以下版本,CentOS7命令不同

设置开机自启:chkconfig vsftpd on                                        (CentOS7使用systemctl enable vsftpd)

启动:/etc/init.d/vsftpd start 或者 service vsftpd start             (CentOS7使用systemctl start vsftpd)

停止:/etc/init.d/vsftpd stop 或者 service vsftpd stop              (CentOS7使用systemctl stop vsftpd)

重启: /etc/init.d/vsftpd restart 或者 service vsftpd restart         (CentOS7使用systemctl restart vsftpd)

查看状态:/etc/init.d/vsftpd status 或者 service vsftpd status

#卸载vsftpd
rpm -e vsftpd

客户端电脑安装“FileZilla”连接ftp服务器,这个是免费的,Mac、Windows版都有,如果连接错误(提示被动模式的问题,则在FileZilla中的设置项中被动模式设置为:退回到主动模式)

vsfptd.conf配置详解:

# vsftp conf /etc/vsftpd.conf

#不允许匿名用户登陆
anonymous_enable=NO

#vsftpd所在系统的用户可以登录vsftpd
local_enable=YES

#允许使用任何可以修改文件系统的FTP的指令
write_enable=YES

#匿名用户新增文件的umask数值
local_umask=022

#允许为目录配置显示信息,显示每个目录下面的message_file文件的内容
dirmessage_enable=YES

#启用一个日志文件,用于详细记录上传和下载
xferlog_enable=YES

#开启20端口
connect_from_port_20=YES

#记录上传下载文件的日志
xferlog_file=/var/log/vsftpd.log

#如果使用者在600秒内都没有命令动作,就会断开连接
idle_session_timeout=600

#如果服务器与客户端的数据联机已经成功建立 (不论主动还是被动联机),但是可能由于线路问题导致6秒内还是无法顺利的完成数据的传送,那客户端的联机就会被我们的 vsftpd 强制剔除!
data_connection_timeout=6

listen=YES
listen_port=21

#从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。所以2.3.5之后的版本需要设置此项
allow_writeable_chroot=YES

#用户默认访问的根目录
local_root=/home/www

#限制用户在自己的家目录之内,如果chroot_local_user=YES且chroot_list_enable=YES则在chroot_list中的用户都是不受限制的用户。如果chroot_local_user=NO且chroot_list_enable=YES则在chroot_list中的用户都是受限制的用户
chroot_local_user=YES

#限制某用户只能访问自己的目录,与chroot_list_flie有关!这个项设置要开启,否则chroot_list_file文件会无效
chroot_list_enable=YES

#限制某用户只能访问自己的目录,将用户名写进这个文件,要确保设置chroot_list_enable=YES才有效
chroot_list_file=/etc/vsftpd/chroot_list

#是否借助 vsftpd 的抵挡机制来处理某些不受欢迎的账号,与userlist_deny设置有关
userlist_enable=YES

#当userlist_enable=YES时才会生效,若为YES则当使用者账号被列入到相应的文件时,在该文件内的使用者将无法登入vsftpd服务器!该文件名与userlist_file设置有关
userlist_deny=YES

#若userlist_deny=YES,则这个设置才有用!在这个文件内的账号都无法使用vsftpd
userlist_file=/etc/vsftpd/user_list

pasv_enable=YES
pasv_min_port=10240
pasv_max_port=10260

#设定pam服务下的vsftpd验证配置文件名。因此,PAM验证将参考/etc/pam.d/下的vsftpd文件配置
pam_service_name=vsftpd

###### 以下是关于虚拟用户支持的重要配置项目,默认.conf配置文件中是不包含这些项目的,需手动添加。 ######

#启用虚拟用户功能
guest_enable=YES

#指定虚拟的宿主用户
guest_username=ftpuser

#设定虚拟用户的权限符合他们的宿主用户
virtual_use_local_privs=YES

#设定虚拟用户个人vsftp的配置文件存放路径。这个被指定的目录里,将被存放每个虚拟用户个性的配置文件,注意的地方是:配置文件名必须和虚拟用户名相同
user_config_dir=/etc/vsftpd/vsftpd_user_conf

#禁止反向域名解析,若是没有添加这个参数可能会出现用户登陆较慢,或则客户链接不上ftp的现象
reverse_lookup_enable=NO

#快速清空vsftpd.conf内容的另一种方法:

vim /etc/vsftpd/vsftpd.conf 打开文件

用输入“G”跳到最后一行,再输入“:1,.d”即可清空。

----- 配置系统用户登录 -----

#创建系统用户登录

useradd test_user

passwd test_user

使用test_user用户登录vsftpd会自动创建一个/home/www/test_user的目录

Linux安装vsftpd总结的更多相关文章

  1. Linux安装vsftpd及配置详解

    1 安装vsftpd组件 安装完后,有/etc/vsftpd/vsftpd.conf 文件,是vsftp的配置文件.[root@bogon ~]# yum -y install vsftpd 2.FT ...

  2. 3.linux安装vsftpd服务

    1.首先查看本地是否安装了vsftpd rpm -qa |grep vsftpd 2.安装vsftpd: yum install vsftpd 3.查询当前ftp状态 chkconfig --list ...

  3. Linux安装vsftpd组件

    1 安装vsftpd组件 安装完后,有/etc/vsftpd/vsftpd.conf 文件,是vsftp的配置文件. [root@hadoop1 ~]# yum -y install vsftpd 2 ...

  4. Linux安装vsftpd

    卸载vsftpd sudo yum remove vsftpd 安装vsftpd sudo yum -y install vsftpd 创建一个文件夹用来当作ftp得仓库 cd / sudo mkdi ...

  5. Red Hat Linux安装vsftpd

    一.安装分区方案: (1)交换分区,两倍内存 (2)/boot分区 (3)/剩余的所有空间语言选择English(英语) 二. 配置IPIP地址.子网掩码: 编辑 /etc/sysconfig/net ...

  6. linux安装vsftpd服务器

    最近看到python的网络编程,看到用python写ftp客户端的小项目,打算着手连连.为了模仿真实环境,我并没有在本机上开个ftp服务器,选择了在虚拟机中的linux中做ftp服务器,我选择了vsf ...

  7. Linux 安装vsftpd和ftp客户端

    1.下载安装包:ftp-0.17-54.el6.x86_64.zip和vsftpd-2.2.2-11.el6_4.1.x86_64.zip 可以直接在Linux底下用yum install vsftp ...

  8. linux安装vsftpd后无法登陆

    安装完成后在主机上登陆时,不管是输入用户,还是匿名都无法登陆 经过检查,发现是因为/etc/hosts.deny禁止了所有ip访问 将hosts.deny中的all:all删除,或者在/etc/hos ...

  9. linux 安装 vsftpd服务

    yum install vsftpd 修改配置文件 vim /etc/vsftpd/ftpusers vim /etc/vsftpd/user_list 简单起见,注释掉两个配置文件中的所有用户.

随机推荐

  1. Android--------工具类StatusBarUtil实现完美状态栏

    很早就想写这篇博客了,直到前几天有人问我这方面的问题才想起. 沉浸式状态栏是从android Kitkat(Android 4.4)开始出现的,顶部状态栏的颜色可以根据开发需求改变,使得APP风格更加 ...

  2. [转载]宿主机为linux、windows分别实现VMware三种方式上网,Host-only win10+rhel7.2实现

    研究一下虚拟机三种上网方式 转自:http://linuxme.blog.51cto.com/1850814/389691 一.VMware三种方式工作原理1 Host-only连接方式 让虚机具有与 ...

  3. 【Error】2003 - Can't connect to MySQL server on 'localhost' (10038)

    此错误主要是连接MySQL地址的地址搞错了. 可以看下 MySQL 的配置文件 /etc/mysql/my.cnf, 其中绑定的本地地址如下: bind-address=127.0.0.1 将其注释掉 ...

  4. centos7 iptables替换firewall

    Disable Firewalld Service. [root@rhel-centos7-tejas-barot-linux ~]# systemctl mask firewalld Stop Fi ...

  5. SSM整合RocketMQ

    前言 RocketMQ是一个由阿里巴巴开源的消息中间件,脱胎于阿里内部使用的MetaQ,本文主要是写个小例子演示一下消息从生产到消费的过程. RocketMQ下载和安装 下载地址 http://roc ...

  6. CSS3 文本超出后显示省略号...

    纯用CSS实现,主要采用代码 overflow:hidden; text-overflow:ellipsis;//这是让文本溢出后,显示成省略号. white-space:nowrap;//禁止自动换 ...

  7. python蛋痛的依赖管理

    java有maven 来统一管理项目依赖.初学python不久还没发现类似这样的工具.只有暂时用这个方法来手动操作了. 你可以用pip导出你的dependency: $ pip freeze > ...

  8. 剑指offer--45.二叉树的深度

    时间限制:1秒 空间限制:32768K 热度指数:139716 题目描述 输入一棵二叉树,求该树的深度.从根结点到叶结点依次经过的结点(含根.叶结点)形成树的一条路径,最长路径的长度为树的深度. -- ...

  9. L151

    In Toothy Prequel, Piranha-Like Fish Menaced Jurassic Seas You can call it a prehistoric prequel.Sci ...

  10. 关于PHP页面显示乱码问题的解决

    关于PHP页面显示乱码问题的解决 网页乱码一直是网络编程高手都头痛的问题,我是一个PHP Web编程的初学者,学习当中也遇到了这个问题,查找了相关的资源,总结如下: 一般的中文编码:gb2312,gb ...