问题描述:

  之前在centos6/7可以快速构建vsftpd服务,在ubuntu上频繁出错。最后发现是vsftpd版本比较新(新增安全特性导致的)

问题解决:

  加上对应参数即可解决问题

window资源管理器登录ftp

ftp://user:pass@ip/xxx/    //账户认证登录

ftp://ip/xxx

ftp://anonymous:@ip/xxx   //匿名登录ftp

ftp://ftp:@ip/xxx

部署环境:

01、系统发行版本

02、vsftpd版本

apt-get install -y vsftpd

 03、匿名登录ftp

/etc/vsftpd.conf

listen=YES
anonymous_enable=YES
local_enable=NO
write_enable=YES
local_umask=
anon_upload_enable=YES
anon_mkdir_write_enable=YES
#人工定义根目录
anon_root=/ldata/ftp_pub
allow_writeable_chroot=YES
chroot_local_user=NO

注意:结尾不能有空格,血的教训

mkdir -p /ldata/ftp_pub      ###进入后的跟目录

mkdir /ldata/ftp_pub/pub   ###匿名帐户可以出创建删除文件的目录

chown -R ftp:ftp /ldata/ftp_pub

chmod a-w /ldata/ftp_pub

04、匿名登录测试

systemctl restart vsftpd       ###观察服务是否启动正常    ss -lnt|grep 21

journalctl -u vsftpd -f     ###日志是否正常

root@bogon:~# ftp localhost    //注意也可以使用IP登录
ftp: connect to address ::: Connection refused
Trying 127.0.0.1...
Connected to localhost.
(vsFTPd 3.0.)
Name (localhost:user): ftp //匿名登录可以使用的账户 ftp/anonymous密码不用填写
Please specify the password.
Password:
Login successful. //登录成功
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> dir //注意根目录不能创建目录及上传文件,需要在pub目录下
PORT command successful. Consider using PASV.
Here comes the directory listing.
drwxr-xr-x Aug : pub
Directory send OK.
ftp> cd pub
Directory successfully changed.
ftp> dir
PORT command successful. Consider using PASV.
Here comes the directory listing.
drwx------ Aug : cd
drwx------ Aug : sb
Directory send OK.
ftp> mkdir good
"/pub/good" created
ftp> cd good
Directory successfully changed.
ftp> touch sb
?Invalid command
ftp> mkdir sb
"/pub/good/sb" created
ftp>

 05、linux本地账户登录

###本地账户登录进入根目录/home/xxx/


root@bogon:/etc# cat vsftpd.conf
listen=YES
listen_ipv6=NO
anonymous_enable=NO
local_enable=YES  //本地账户许可登录ftp
write_enable=YES
local_umask=022

dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
idle_session_timeout=600
data_connection_timeout=120


ascii_upload_enable=YES
ascii_download_enable=YES


secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
utf8_filesystem=YES
allow_writeable_chroot=YES


#指定本地账户可以登录ftp

userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/ftpuser_list   //清单中的账户可以登录ftp

root@bogon:/etc# cat ftpuser_list
ftp_test

local_root=/ldata/ftp_data     //指定本地登录账户的根目录,

chown -R ftp_test: /ldata/ftp_data    //把可以登录账户的权限赋值正确

06、用户登录测试

注意:man 5 vsftpd.conf  //查看详细的参数配置及含义

ubuntu16.04部署vsftpd的更多相关文章

  1. 基于ubuntu16.04部署IBM开源区块链项目-弹珠资产管理(Marbles)

    前言 本教程基本上是对Marbles项目的翻译过程. 如果英文比较好的话,建议根据官方操作说明,一步步进行环境部署.当然你也可以参考本教程在自己的主机上部署该项目. Marbles 介绍 关于 Mar ...

  2. ubuntu16.04 部署配置LVS主从

    实验环境---ubuntu16.04 四台机器:10.211.55.13—55.16 具体实验环境配置如下: 10.211.55.102  LVS_VIP 10.211.55.13  LVS_MAST ...

  3. disconf实践(一)Ubuntu16.04部署disconf

    在企业中,随着公司业务的扩张,用户量的增大,单一节点应用无法支撑正常的业务逻辑,比较常见的现象是访问速度变慢,甚至超时,严重时可能会造成系统宕机.为了尽量减少宕机的风险,单一节点系统需要进行水平扩展, ...

  4. Ubuntu16.04部署python2和python3共存的Jupyter Notebook

    一.安装python和python-pip sudo apt-get install python python3 python-pip python3-pip sudo pip install -- ...

  5. Ubuntu16.04部署phantomjs的一个问题

    首先phantomjs是作为pyspider的一个外部依赖组件部署的. apt安装完出现问题: QXcbConnection: Could not connect to display Phantom ...

  6. Ubuntu16.04 部署安装Docker容器 & 注意事项

    一.部署安装Docker容器 1.1 Ubuntu下安装 crul sudo apt install curl curl是利用URL语法在命令行方式下工作的开源文件传输工具.它被广泛应用在Unix.多 ...

  7. ubuntu16.04部署RED5流媒体服务器

    前提:jdk已经安装 1,下载RED5(https://github.com/Red5/red5-server/releases)选择red5-server-X.X.X-MXX.tar.gz 2,解压 ...

  8. Ubuntu16.04 部署配置GO语言开发环境 & 注意事项

    1. 安装GO 安装go语言包: $ curl -O https://storage.googleapis.com/golang/go1.10.1.linux-amd64.tar.gz   下载完成后 ...

  9. 阿里云 Ubuntu16.04 部署 LAMP

    1.更新软件源 sudo apt-get update 2.安装Apache sudo apt-get install apache2 3.查看Apache是否安装成功 apache2 –v 如下所示 ...

随机推荐

  1. CSAGAN的几大重点 - 2

    1.生成器 1)MRU(SketchyGAN) 计算过程为: 与DCGAN[46]和ResNet生成架构的定性和定量比较可以在5.3节中找到.MRU块有两个输入:输入特征图xi和图像I,输出特征图yi ...

  2. SDN实验---Ryu的应用开发(四)北向接口RESTAPI

    一:推文 软件定义网络基础---REST API概述 软件定义网络基础---REST API的设计规范 二:掌握Ryu基本RESTAPI使用方法 (一)Ryu的RESTAPI (二) REST应用样例 ...

  3. 自定义MyBatis

    自定义MyBatis是为了深入了解MyBatis的原理 主要的调用是这样的: //1.读取配置文件 InputStream in = Resources.getResourceAsStream(&qu ...

  4. 为什么重写equals时一定要重写hashcode

    我们开发时写一个类,默认继承Object类,Object类的equals方法是比较是否指向同一个对象(地址是否相同), Object类 的hashcode方法返回的对象内存地址的值, 一个类只重写了e ...

  5. WeQuant教程—1.3 利用回测工具降低交易风险

    量化系统投入实际使用之前,人们会希望提前测试交易的效果.这个期间往往涉及代码的改动和参数的调整.最常见的做法是将历史数据输入量化系统,让量化系统根据既定的交易逻辑进行操作,观察和分析交易结果,找到问题 ...

  6. K8S使用入门-添加一个node

    上一篇博客我们已经将K8S部署起来了,现在我们就来介绍一下如何简单使用K8S (1)添加节点 注意事项:不能和k8s master节点的主机名一样.否则会导致k8s无法正常识别出该节点 添加节点是比较 ...

  7. 【Spring Boot学习之三】Spring Boot整合数据源

    环境 eclipse 4.7 jdk 1.8 Spring Boot 1.5.2 一.Spring Boot整合Spring JDBC 1.pom.xml <project xmlns=&quo ...

  8. 通Shell获取Tomcat进程号并杀死进程

    #!/bin/bash echo "begin get tomcat8 pid" tomcat8_id=$( | grep -v grep | awk '{print $2}') ...

  9. java 字符串转json,json转实体对象、json字符串转换成List、List转String、以及List排序等等...

    @RequestMapping(value = "updateInvestorApplyAccountNo", method = RequestMethod.POST) @Resp ...

  10. tomcat启动时报No rules found matching 'Server/Service/Engine/Host/context'

    tomcat是8.0版本. 在eclipse启动时,第二行报这个, 同时项目也没加载(tomcat启动成功了). 网上搜了半天, 试了半天, 没搞定. 最后不经意间发现: <Context do ...