问题描述:

  之前在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. idel上传代码到github时遇到的Push rejected: Push to origin/master was rejected

    1 没有权限 2 先pull之后,再push即可

  2. 从原理到应用,Elasticsearch详解

    简介 Elasticsearch(简称ES)是一个分布式.可扩展.实时的搜索与数据分析引擎.ES不仅仅只是全文搜索,还支持结构化搜索.数据分析.复杂的语言处理.地理位置和对象间关联关系等. ES的底层 ...

  3. C++内存管理2-内存泄漏

    1 C++中动态内存分配引发问题的解决方案 假设我们要开发一个String类,它可以方便地处理字符串数据.我们可以在类中声明一个数组,考虑到有时候字符串极长,我们可以把数组大小设为200,但一般的情况 ...

  4. VC++6.0 打印调试信息

    1.在MFC中加入TRACE语句 2.在TOOLS->MFC TRACER中选择 “ENABLE TRACING”点击OK 3.进行调试运行,GO(F5)(特别注意:不是执行‘!’以前之所以不能 ...

  5. 零基础C#网站开发实战教学(全套)最新更新2019-12-16。。。

    这是林枫山自己编写制作的全套Visual Studio 2013 C# 网站开发案例实战教学教程,欢迎下载学习. 下载目录链接如下(如果链接下载不了,请加QQ:714259796获取教程): 网站界面 ...

  6. WinForm自动记录从上次关闭位置启动窗体

    次功能主要是通过在注册表中读写窗体的Location属性来实现的.在窗体关闭前处理窗体的FormClosed事件,将窗体的Location属性值写入注册表,然后在窗体的Load事件中从注册表中读取保存 ...

  7. [ARM-Linux开发]Linux open函数

    Linux open函数 open 函数用于打开和创建文件.以下是 open 函数的简单描述 #include <fcntl.h> int open(const char *pathnam ...

  8. dockerfile使用

    一.构筑镜像命令 docker build -t test/nginx:v1.0 - prese/nginx:v1.0 -f /git/dockerfile . -t:指定存储库:镜像名和标签保存新镜 ...

  9. Kubernetes+Istio

    Kubernetes+Istio   微服务.SpringCloud.k8s.Istio杂谈   一.微服务与SOA “微服务”是一个名词,没有这个名词之前也有“微服务”,一个朗朗上口的名词能让大家产 ...

  10. Idea打jar包(包含依赖的jar)

    项目右键 ---> Open Module Settings 如下选择,点击OK 点击OK退出! 在Intellij Idea的菜单栏中依次选择“Build -> Build Artifa ...