问题描述:

  之前在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. 关于Spring Cloud的思考和总结

    博主开发使用了Spring Cloud,使用过程中的一些学习和经验,体会通过本博文进行记录. 以前的架构,单体应用: 加入ESB,通过总线进行调用: 微服务架构: 区别: SOA架构主要针对企业级,采 ...

  2. java 欢迎页 主页 设置为servlet的方法

    [参考]Java Web 设置默认首页 [参考]设置servlet或action作为欢迎页面 1. 使用HTML<meta>标签跳转至servlet  <META HTTP-EQUI ...

  3. zxing解析生成一维码二维码

    @web界面实现扫一扫 二维码工具类 package util; import java.awt.BasicStroke; import java.awt.Graphics; import java. ...

  4. linux驱动开发学习二:创建一个阻塞型的字符设备

    在Linux 驱动程序中,可以使用等待队列来实现阻塞进程的唤醒.等待队列的头部定义如下,是一个双向列表. struct list_head { struct list_head *next, *pre ...

  5. Centos7——Firefox浏览器个性化配置调教

    因为谷歌浏览器无法正常登陆帐号,只能切换到火狐浏览器 默认浏览器我使用的是bing搜索 1.隐藏顶部标题栏 顶部标题栏真的占地方,所以直接选择隐藏 点击设置->自定义customize-> ...

  6. 去掉WARN spring.jpa.open-in-view is enabled by default

    使用springboot jpa,在运行项目时发现一个WARN WARN 11472 --- [ main] aWebConfiguration$JpaWebMvcConfiguration : sp ...

  7. MySQL5.7的sql脚本导入到MySQL5.5出错解决

    今晚有人让我将他的数据库导入到我的mysql里,执行导入后发现有报错 想了下可能是版本的问题,询问了下,他的数据库是5.7而我的是5.5 他给我提议升级mysql版本,但是我就是不想换版本 那怎么在不 ...

  8. Apache Kafka® is a distributed streaming platform

    Kafka Connect简介 我们知道过去对于Kafka的定义是分布式,分区化的,带备份机制的日志提交服务.也就是一个分布式的消息队列,这也是他最常见的用法.但是Kafka不止于此,打开最新的官网. ...

  9. spring mvc 处理pojo传递对象时该对象继承父类的属性在网络接收端接收该属性值总是null,why?

    //=========================== 情形一: ===============================//在网络上传递User1类对象时info属性值在网络的另一端能够接 ...

  10. jQuery中$(this)与this的区别

    经常在写jQuery的时候分不清this 和 $(this),为了方便起见尽量不用this,只用$(this).但是今天在别人的代码的基础上改一些东西,又遇到了这个this,不得不把它弄明白. $(t ...