Ubuntu 用vsftpd 配置FTP服务器

最近开学,有好多课程结束后都需要将文件考到优盘里,而本人又有健忘的毛病,经常忘记带优盘,所以就搭建了自己的ftp服务器,也算是用技术放松自己吧。闲话少叙,进入正题:
网上关于ftp搭建的文章很多,我也是根据网上的材料搭建起来的,过程并不复杂。

安装ftp

sudo apt-get install vsftpd

配置vsftpd.conf

sudo nano /etc/vsftpd.conf
#禁止匿名访问
anonymous_enable=NO
#接受本地用户
local_enable=YES
#允许上传
write_enable=YES
#用户只能访问限制的目录
chroot_local_user=YES
#设置固定目录,在结尾添加。如果不添加这一行,各用户对应自己的目录,当然这个文件夹自己建
local_root=/home/ftp

添加ftp用户

sudo useradd -d /home/ftp -M ftpuser
sudo passwd ftpuser

在添加用户的时候不要忘了在home文件下建一个ftp文件
调整文件夹权限

这个是避免“500 OOPS: vsftpd: refusing to run with writable root inside chroot()”

sudo chmod a-w /home/ftp
sudo mkdir /home/ftp/data

改pam.d/vsftpd

这时候直接用useradd的帐号登录ftp会530 login incorrect

sudo nano /etc/pam.d/vsftpd

注释掉

#auth    required pam_shells.so

重启vsftpd

sudo service vsftpd restart

这时就可以用刚才建的ftpuser这个用户登录ftp了,看到的是local_root设置的/home/ftp,并且限制在该目录。

可以在浏览器用ftp://xxx.xxx.xxx.xxx访问,也可以用ftp软件比如flashFXP,密码就是ftpuser的密码。

关于用户访问文件夹限制

由chroot_local_user、chroot_list_enable、chroot_list_file这三个文件控制,转别人的一段话:

首先,chroot_list_enable好理解,就是:是否启用chroot_list_file配置的文件,如果为YES表示chroot_list_file配置的文件生效,否则不生效;
第二,chroot_list_file也简单,配置了一个文件路径,默认是/etc/vsftpd.chroot_list,该文件中会填入一些账户名称。但是这些账户的意义不是固定的,是跟配置项chroot_local_user有关的。后一条中说明;
第三,chroot_local_user为YES表示所有用户都不能切换到主目录之外其他目录,但是!除了chroot_list_file配置的文件列出的用户。chroot_local_user为NO表示所有用户都切换到主目录之外其他目录,但是!除了chroot_list_file配置的文件列出的用户。也可以理解为,chroot_list_file列出的“例外情况”的用户。

如果客户端登录时候提示“以pasv模式连接失败”

编辑/etc/vsftpd.conf
最后添加

pasv_promiscuous=YES

然后再重启vsftpd服务。

再说一点,使用ftp可以用我的电脑来登录,只要在路径栏里输入ftp://xx.xx.xx.xx然后登录即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/536154.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux的程序打包deb

deb安装包 deb是Unix系统(其实主要是Linux)下的安装包,基于 tar 包,因此本身会记录文件的权限(读/写/可执行)以及所有者/用户组。 由于 Unix 类系统对权限、所有者、组的严格要求,而 deb 格式安装包又经常会涉及到系统比较底层的操作&#…

利用pyinstaller打包python3程序

pyInstaller是一款用于将pyhon程序打包成exe文件的工具,pyInstaller不是一个python的包, 只需要把pyInstaller的文件下载下来放到任意为止都可以,也就是说pyInstaller相当于独立出来专门干打包python的工具,这货是工具不是库&…

C++11新特性之左值右值及移动语句与完美转发

C左值右值左值和右值的由来什么是左值和右值左值右值的本质引用左值引用右值引用 移动语句与完美转发移动语句实现移动构造函数和转移赋值函数stdmove完美转发Perfect Forwarding C左值右值 自从C11发布之后,出现了一个新的概念,即左值和右值&#xf…

nginx中的nginx.conf.default配置

#运行用户 user nobody; #启动进程,通常设置成和cpu的数量相等 worker_processes 1;#全局错误日志及PID文件 #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info;#pid logs/nginx.pid;#工作模式及连接数上限 events {…

C++11新特性之泛型编程与模板

模板泛型编程函数模板普通函数模板成员函数模板函数模板重载模板函数的特化 类模板类模板中的成员函数模板类模板的特化与偏特化类模板成员特化 模板 Template所代表的泛型编程是C语言中的重要组成部分。 泛型编程 泛型编程(Generic Programming)是…

WordPress更改“固定链接”后 页面404原因及解决方法(Nginx版)

网上盛传的方法是: 在 /etc/nginx/nginx.conf文件的 loction / {} 中添加 if (-f $request_filename/index.html){rewrite (.*) $1/index.html break; }if (-f $request_filename/index.php){rewrite (.*) $1/index.php; }if (!-f $request_filename){rewrite (.*…

C++类型萃取之type_traits和type_info

类型萃取类型判断typeiddecltype和declvalenable_if 类型萃取 通过type_traits可以实现在编译期计算、查询、判断、转换和选择,增强了泛型编程的能力,也增强了我们程序的弹性,让我们能够在编译期就能够优化改进甚至排错,进一步提…

使用Phpstorm实现远程开发

Phpstorm除了能直接打开本地文件之外,还可以连接FTP,除了完成正常的数据传递任务之外,还可以进行本地文件与服务端文件的异同比较,同一文件自动匹配目录上传,下载,这些功能是平常IDE,FTP软件中少…

什么是递归函数?

文章目录递归函数递归例题特点效率优点递归函数 递归 递归就是一个函数在它的函数体内调用它自身。执行递归函数将反复调用其自身,每调用一次就进入新的一层。递归函数必须有结束条件。 当函数在一直递推,直到遇到墙后返回,这个墙就是结束条…

apache ab压力测试报错

今天用apache 自带的ab工具测试&#xff0c;当并发量达到1000多的时候报错如下&#xff1a; [rootaa~]# This is ApacheBench, Version 2.3 <Revision:655654> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Sof…

ngOnInit与constructor的区别

前世今生 Angular会管理一个组件的生命周期,包括组件的创建、渲染、子组件创建与渲染、当数据绑定属性变化时的校验、DOM移除之前毁销。 Angular提供组件生命周期钩子便于我们在某些关键点发生时添加操作。 组件生命周期钩子 指令和组件实例有个生命周期用于创建、更新和销…

Nginx配置性能优化

大多数的Nginx安装指南告诉你如下基础知识——通过apt-get安装&#xff0c;修改这里或那里的几行配置&#xff0c;好了&#xff0c;你已经有了一个Web服务器了。而且&#xff0c;在大多数情况下&#xff0c;一个常规安装的nginx对你的网站来说已经能很好地工作了。然而&#xf…

Angular的@Output与@Input理解

@Output与@Input理解 Output和Input是两个装饰器,是Angular2专门用来实现跨组件通讯,双向绑定等操作所用的。 @Input Component本身是一种支持 nest 的结构,Child和Parent之间,如果Parent需要把数据传输给child并在child自己的页面中显示,则需要在Child的对应 directiv…

腾讯云CDN配置

第一步&#xff1a;先去领取腾讯云CDN免费包23333333 以下为正式步骤&#xff1a; 在这里体现大家&#xff0c;域名一定要备案&#xff0c;另外要明白域名如何解析 前边问题不大&#xff0c;一切跟着腾讯云的套路来即可&#xff0c;需要注意的是网上后优化的配置大家可以自行…

Promise.all的深入理解

异步之Promise Promise.all Promise.all接收的promise数组是按顺序执行的还是一起执行的&#xff0c;也就是说返回的结果是顺序固定的吗&#xff1f; 目前有两种答案&#xff1a; 应该是同步执行的&#xff0c;但是这样就有效率问题了&#xff0c;如果想改成异步执行怎么办…

wordpress后台无法登录问题

之前给自己的WordPress加了个标签云&#xff0c;今天登录的时候突然发现网站后台进不去了&#xff0c;无奈各种找材料&#xff0c;这算是皇天不负有心人&#xff0c;总算是给我找到了&#xff0c;现在做一下记录 登录不上的原因在于&#xff1a;wp-admin和wp-admin/是不同的&a…

深入理解Angular订阅者模式

深入理解Angular订阅者模式 如果正在读此篇文章的你学过java,c++等面向对象语言,知道两个模式观察者模式和订阅者模式,分别为:Observer pattern,Pub-sub pattern(Subscriber) 接下来我们结合Angular来说明这两个模式。 Observer pattern This is a pattern of developme…

Ubuntu中安装python3

通过命令行安装Python3.*&#xff0c;只需要在终端中通过命令行安装即可&#xff1a; sudo apt-get install python3 Ubuntu的底层大多数采用的是Python2.*&#xff0c;Python3和Python2是互相不兼容的&#xff0c;完全没法通用的&#xff08;也不知道他们怎么想的o(TヘTo)&a…

Angular深入理解之指令

Angular深入理解之指令 指令有什么功能 Attribute directives 属性指令Structural directives 结构指令自定义属性指令自定义结构指令Angular深入理解之指令 对于初学Angular的同学来说,指令无疑是最痛苦的,那么我们怎么使用自定义的指令呢?指令到底怎么实现呢?为什么要写…

windows下Apache虚拟主机配置

找到host文件&#xff1a;C:\Windows\System32\drivers\etc\hosts 在hosts这么增加&#xff1a; 127.0.0.1 666.666.com 127.0.0.1 777.777.com 修改httpd.conf文件&#xff1a; 打开文件&#xff1a;xxx\xampp\apache\conf\httpd.conf 找到#LoadModule vhost_…