我使用的是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. IE类兼容一

    X-UA-Compatible是自从IE8新加的一个设置,对于IE8以下的浏览器是不识别的.通过在meta中设置X-UA-Compatible的值,可以指定网页的兼容性模式设置. 在网页中指定的模式优 ...

  2. mock数据

    作为前端经常需要模拟后台数据,我们称之为mock.通常的方式为自己搭建一个服务器,返回我们想要的数据. 在这里我们使用node.js来实现 http://www.cnblogs.com/bsn-hua ...

  3. Memory Manager surface area changes in SQL Server 2012

    here were various changes to memory related DMVs, DBCC memory status, and Perfmon counters in SQL Se ...

  4. 英语每日阅读---8、VOA慢速英语(翻译+字幕+讲解):脸肓症患者记不住别人的脸

    英语每日阅读---8.VOA慢速英语(翻译+字幕+讲解):脸肓症患者记不住别人的脸 一.总结 一句话总结: a.neural abnormalities are more widespread:Duc ...

  5. 开源 E-ChartSdk 的使用方法

    SVN 源码地址:http://code.taobao.org/svn/keshihua-echarts/ 1.1.如何声明 var sdk = new ChartSdk(); 1.2.加载JS中的图 ...

  6. VMWare虚拟机网络配置

    Bridged(桥接模式) 桥接模式相当于虚拟机和主机在同一个真实网段,VMWare充当一个集线器功能(一根网线连到主机相连的路由器上),所以如果电脑换了内网,静态分配的ip要更改.图如下: NAT( ...

  7. 51NOD-1960-数学/贪心

    1960 范德蒙矩阵  基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 LYK最近在研究范德蒙矩阵与矩阵乘法,一个范德蒙矩阵的形式如下: 它想通过构 ...

  8. Frequently-Used Network Time Server(Base On NTP:Network Time Protocol)

    国家授时中心服务器               210.72.145.44 133.100.11.8    日本福冈大学 time-a.nist.gov                   129.6 ...

  9. Java基础学习-常见API

    package commonAPIs; /*java.lang 类 Object java.lang.Object public class Object类 Object 是类层次结构的根类.每个类都 ...

  10. win2008 服务器文件夹权限配置

    通过控制文件夹权限来提高站点的安全性. 这一篇权限设置包括二个方面,一个是系统目录.盘符的权限,一个是应用程序的上传文件夹权限设置. 系统目录 确保所有盘符都是NTFS格式,如果不是,可以用命令 co ...