
正文
Centos7 ftp服务器搭建
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
1.使用yum安装ftp服务端:
yum install -y vsftpd
2.使用yum安装ftp客户端:
yum install -y ftp.x86_64
3.开启ftp服务设置开机启动并查看状态:
systemctl start vsftpdsystemctl enable vsftpdsystemctl status vsftpd
4.配置配置文件:
4.1备份配置文件,防止意外:
cp /etc/vsftpd/vsftpd.conf/etc/vsftpd/vsftpd.conf.bak
4.2 vim /etc/vsftpd/vsftpd.conf 进入配置文件修改如下:
#禁止匿名访问anonymous_enable=NO#设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问local_enable=YESwrite_enable=YESlocal_umask=022dirmessage_enable=YESxferlog_enable=YESconnect_from_port_20=YESxferlog_std_format=YES#是否锁定所有用户不能离开自己的主目录。YES时,锁定;NO时,所有都不锁定chroot_local_user=YES#开启例外用户列表,本列表含义跟chroot_local_user配置有关联。当锁定时,本列表中的用户不锁定;当不锁定时,本列表中的用户锁定chroot_list_enable=YES#设置例外用户列表文件chroot_list_file=/etc/vsftpd/chroot_listlisten=NO#PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证pam_service_name=vsftpd#为YES时,开启用户验证;为NO时,不开启userlist_enable=YES#为NO时,允许user_list中用户登陆;为YES时,禁止user_list中用户登陆userlist_deny=YES#设定启用虚拟用户功能guest_enable=YES#指定虚拟用户的宿主用户,一般新建一个nologin类型的用户作为虚拟用户的宿主用户guest_username=vsftpdvirtual_use_local_privs=YES#设定虚拟用户个人配置文件存放路径user_config_dir=/etc/vsftpd/vuser_conf
5.建立虚拟用户列表
#第一行用户名,第二行密码,不能使用root为用户名vim /etc/vsftpd/virtusers添加内容test1123456test2123456
6.生成db文件
db_load -T -t hash-f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db注释:db_load如果没有自行安装。#修改文件权限chmod600/etc/vsftpd/virtusers.db (权限r,w即可)
7.修改/etc/pam.d/vsftpd文件
#备份文件,防止意外cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak#vim /etc/pam.d/vsftpd,注释文件内容,添加下面两行:auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers注释:根据自己的机器类型选择lib64还是lib。
8.新建系统nologin用户vsftpd,新建虚拟用户根目录,配置虚拟用户个人配置
8.1新建系统用户
#先在家目录下建立vsftpd文件夹,这也是我们所有虚拟用户访问的空间mkdir -p /home/vsftpd#用户登录终端设为/sbin/nologin(即:使之不能登录系统)useradd vsftpd -d/home/vsftpd -s /sbin/nologin
8.2新建虚拟用户根目录,其他用户类似
mkdir -p /home/vsftpd/test1/chown -R vsftpd:vsftpd /home/vsftpd/test1
8.3配置虚拟用户个人配置
vim /etc/vsftpd/vuser_conf/test1,文件名跟虚拟用户名相同:#设置虚拟用户的主目录local_root=/home/vsftpd/test1#需要设置本项,不然登陆时会登陆不了,权限问题
allow_writeable_chroot=YES#下面这些项根据需要添加write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
9.关闭防火墙。当然也可以设置对服务开放,为了方便直接关闭。
systemctl stop firewalldsystemctl disable firewalldsystemctl status firewalld
10.关闭SELinux。当然也可以根据需要开放,为了方便直接挂壁。
修改/etc/selinux/config文件中的SELINUX=disabled ,然后重启。
完毕!
本人安装过程遇到的问题:
1.配置完成后,启动时发生错误:
==== AUTHENTICATION COMPLETE ===
Job for vsftpd.service failed because the control process exited with error code. See "systemctl status vsftpd.service" and "journalctl -xe" for details.
原因:配置文件中,配置项后多了东西。每个配置项后面什么都不能有,包括空格,否则会出现上述问题。
#设定启用虚拟用户功能
guest_enable=YES #




