linux安装之ftp

本安装教程基于centos7

1.查看是否已安装了vsftp(如果已经安装了,请先卸载)

[root@iZuf6hmkcpexishpa3id8xZ ~]# rpm -qa |grep vsftpd

2.安装

 ①yum -y install vsftpd

 ②修改配置文件

vi /etc/vsftpd/vsftpd.conf

 ③ 保证下面3项为YES
anonymous_enable=YES#匿名登录
anon_upload_enable=YES#允许上传文件
anon_mkdir_write_enable=YES#允许上传/创建目录

[root@iZuf6hmkcpexishpa3id8xZ ~]# cat /etc/vsftpd/vsftpd.conf |grep -v '#'
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES

dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_list_file=/etc/vsftpd/vuser.txt
listen=YES

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES

guest_username=ftp

 ④设置vsftpd开机启动

systemctl enable vsftpd.service

 ⑤启动并查看vsftpd服务状态,systemctl启动服务成功不会有任何提示,绿色的active表示服务正在运行

    systemctl start vsftpd.service

systemctl status vsftpd.service

[root@iZuf6hmkcpexishpa3id8xZ ~]# systemctl status vsftpd.service
● vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled)
Active: active (running) since 二 2017-12-12 10:41:18 CST; 34min ago
Process: 8261 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
Main PID: 8262 (vsftpd)
CGroup: /system.slice/vsftpd.servic└─8262 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

3.本地验证ftp是否可以正常访问

 ①安装ftp

yum -y install ftp

 ②使用anonymous登陆,无需密码

ftp localhost
4.外部验证


5.文件读写权限

chmod 777 -R /var/ftp/pub

6.添加虚拟用户

 ①修改配置文件

打开/etc/vsftpd/vsftpd.conf,做如下配置
anonymous_enable=NO //设定不允许匿名访问
local_enable=YES //设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问
ascii_upload_enable=YES
ascii_download_enable=YES //设定支持ASCII模式的上传和下载功能
pam_service_name=vsftpd //PAM认证文件名。PAM将根据/etc/pam.d/vsftpd进行认证

以下这些是关于vsftpd虚拟用户支持的重要配置项,默认vsftpd.conf中不包含这些设定项目,需要自己手动添加
guest_enable=YES //设定启用虚拟用户功能
guest_username=ftp //指定虚拟用户的宿主用户,CentOS中已经有内置的ftp用户了
user_config_dir=/etc/vsftpd/vuser //设定虚拟用户个人vsftp的CentOS FTP服务文件存放路径。存放虚拟用户个性的CentOS FTP服务文件(配置文件名=虚拟用户名

 ②进行认证

首先,安装Berkeley DB工具,很多人找不到db_load的问题就是没有安装这个包。
yum install db4 db4-utils

然后,创建用户密码文本/etc/vsftpd/vuser.txt ,注意奇行是用户名,偶行是密码

ftp
ftp

接着,生成虚拟用户认证的db文件
db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db
随后,编辑认证文件/etc/pam.d/vsftpd,全部注释掉原来语句,再增加以下两句:
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
最后,创建虚拟用户配置文件
mkdir /etc/vsftpd/vuser_conf/

vi /etc/vsftpd/vuser_conf/ftp //文件名等于vuser_passwd.txt里面的账户名,否则下面设置无效

内容如下(每一行末不能有空格,否则报错,我当时就是复制粘贴,导致有空格引起报错)

local_root=/var/ftp //虚拟用户根目录,根据实际情况修改
write_enable=YES //可写
anon_umask=022 //掩码
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

设置FTP根目录权限

chmod R 755 /var/ftp

最新的vsftpd要求对主目录不能有写的权限所以ftp为755,主目录下面的子目录再设置777权限

 7.其他

①参考博客

安装:https://www.cnblogs.com/zhi-leaf/p/5983550.html

用户:http://www.cnblogs.com/surge/p/3868385.html

②配置曲折遭遇

在配置 /etc/vsftpd/vsftpd.conf

的时候设置了chroot_list_enable=YES

结果导致连接测试的时候报了500

chroot_local_user #是否将所有用户限制在主目录,YES为启用 NO禁用.(该项默认值是NO,即在安装vsftpd后不做配置的话,ftp用户是可以向上切换到要目录之外的)
chroot_list_enable #是否启动限制用户的名单 YES为启用 NO禁用(包括注释掉也为禁用)
chroot_list_file=/etc/vsftpd/chroot_list #是否限制在主目录下的用户名单,至于是限制名单还是排除名单

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值