热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

图文详解Ubuntu搭建Ftp服务器的方法(包成功)

今天小编就为大家分享一篇关于图文详解Ubuntu搭建Ftp服务器的方法(包成功),小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

一、今天下午由于课程的要求不得已做了Ubuntu搭建Ftp服务器的实验,但是实验指导书还是N年前的技术,网上搜了一大把,都是模模糊糊的!

在百般困难中终于试验成功,特把经验分给大家 希望大家少走弯路!

二、详细步骤如下:

(1)首先打开终端进入root模式下(在终端中输入:sudo su 回车 提示输入密码  输入密码即可);

(2)安装vsftpd软件(首先要联网,或者通过新立德软件安装!卸载软件命令:sudo apt-get remove vsftpd

命令:sudo apt-get install vsftpd

(3)安装成功之后,默认的会在 文件系统下的srv 目录下创建一个ftp文件(和home在同一级目录下的),这里就是ftp服务器的默认文件夹!

(4)在有一些文档上说的是在ftp服务器自动创建的目录是在home目录下的ftp文件夹,但是我始终没有找到(一般home目录下是用户的目录),自己创建的在访问ftp的时候也是没有找到!

(5)向服务器目录添加文件夹和文件,首先在srv/ftp/下创建一个文件夹test(手动无法创建,只能通过命令实现!)

命令:mkdir   /srv/ftp/test

得到创建好的文件夹:

多创建几个目录仅用于测试!

(6)在test文件夹中创建一个文件:touch     /srv/ftp/test/1.txt 文件

(7)编辑该1.txt文件:(由于权限的管理,需要利用root模式更改文件内的内容!)

sudo gedit /srv/ftp/test/1.txt    会弹出一个记事本文件 是root权限下打开的才可以修改的|!随便加些内容

(8)为了说明一个命令,重启一下!

命令是:sudo /etc/init.d/vsftpd restart

(9)查看是否成功 找到Ubuntu的IP地址,在地址栏中访问  我的是:ftp://192.168.136.130/   或者是ftp://localhost,以下是截图:

进入test找到1.txt文件 点击进入!

(10)ok!到此完成!

三、上述中知识介绍了一般默认的配置,我们通常是需要根据自己的需求配置的,以下是一些常见的配置!

如需修改的话还是需要在root权限下修改 使用命令:sudo      gedit       /etc/vsftpd.conf   

(1)匿名用户相关设置

  • anonymous_enable=YES     ,将YES改为NO, 禁止匿名用户登陆
  • #anon_mkdir_write_enable=YES    ,将#注释去掉,允许匿名用户创建目录
  • #non_upload_enalbe=YES   ,将#去掉,允许匿名用户上传
  • anon_world_readable_Only=YES  ,允许匿名用户下载,默认是禁止的,这个可以自行添加。
  • Anon_other_write_enable=YES  ,将其设为YES的话,就除了上传和创建目录外,还可以重命名,删除文件,默认是NO
  • no_anon_password=NO     ,将其设为YES,匿名用户不会查询用户密码直接登陆。
  • ftp_username=ftp  ,匿名用户登陆系统的账号默认为ftp,此项最好不要改;
  • chroot_local_user=YES #把本地用户限制在自己的home文件夹中,这样子登录之后就不能访问自己home之外的文件了,这样子是出于安全上的考虑
  • anon_root=/var/ftp/anon #指定匿名登录后的根文件夹,也就是对于匿名用户,会把/var/ftp/anon映射为它的根目录

(2)FTP服务端口的指定

  • listen_port=8021  ,指定命令通道为8021,默认为21
  • listen_data_port=8020  ,指定数据通道为8020,默认为20

(3)上传模式的设置

  • pasv_enable=YES         ,是否允使用被动模式,默认是允许的。
  • pasv_min_port=10000   ,指定使用被动模式时打开端口的最小值
  • pasv_max_port=10004 ,指定使用被动模式时打开端口的最大值。

(4)Vsftp服务器指定IP地址

  • listen_address=192.168.0.21 ,  指定FTP,IP地址

注:只有当vsftp运行于独立模式时才允许使用指定IP,如果在/etc/xinetd.d目录下已经建立了vsfpd文件,就要将该文件中的disable设置为yes,方可。

(5)锁定用户,禁止用户离开用户主目录

  • chroot_local_user=YES ,将其设为YES,就锁定在用户主目录,设为NO,可以切换

将指定用户设置为锁定用户主目录:

#chroot_list_enable=YES

#chroot_list_file=/etc/vsftpd.chroot_list

将其改为如下:

chroot_list_enable=NO

chroot_list_file=/etc/vsftpd/vsftpd.chroot_list

将上面保存,再做如下操作:

#touch /etc/vsftpdvsftpd.chroot_list

#vi /etc/vsftpd/vsftpd.chroot_list ,在该文件中加入用户名单,如:netseek_com

(6)vsftpd服务器的流量控制

  • max_clients=100 ;允许的最大连接数,定义为100,默认为0,表没有限制
  • max_per_ip=5 ;每个IP允许的连接数,0表没有限制,需要运行于独立模式方可
  • anon_max_rate=50000 ;匿名用户最大带宽,单位为bps
  • local_max_rate=200000  ;系统用户最大带宽

(7)vsftpd定制欢迎信息

目录说明设置

#vi /etc/vsftpd.conf

#dirmessage_enable=YES,前的#去掉。

然后我们定制一个.message,写上你想写的东西,然后把这个文件复制到各个用户的家目录中,就OK。

(9)vsftpd系统欢迎消息设置

ftpd_banner=Welcome to ftp.netseek.com , Yeah!!! 

系统欢迎消息文件设置

banner_file=/etc/vsftpd/welcome   与ftpd_banner相类似,不同之处在于,banner_file指定欢迎文件。

四、创建用户

但这样是不能上传文件的。因为这是匿名用户,当前目录所有者是root用户; 真的要上传文件在该目录下建立一个文件夹如名字是upload,

$ sudo mkdir /srv/ftp/upload

$ sudo chown ftp:root /srv/ftp/upload

这个时候可以传文件到upload目录,但根目录还是不能上传文件,这是匿名用户,如果不是匿名用户就不存在这个问题。

1). 修改配置文件/etc/vsftpd.conf

anonymous_enable=NO

local_enable=YES

write_enable=YES

chroot_local_user=YES 

2). 创建本地用户

$ sudo useradd ftpuser -m

$ sudo passwd ftpuser

便可用ftpuser登录FTP了。

6. 如果出现错误:500 OOPS: vsftpd: refusing to run with writable anonymous root 

这表示ftp用户的家目录的权限不对,这个目录的权限是不能打开所有权限的;是运行了chmod 777 /srv/ftp所致;如果没有ftp用户这个家目录,当然您要自己建一个; 

FTP用户的家目录是不能针对所有用户、用户组、其它用户组完全开放的;解决办法如下:

# chown root:root /srv/ftp 
# chmod 755 /srv/ftp

7. 防火墙打开相应的端口21,20

8. /etc/init.d/vsftpd restart 重启服务

五、各用户的解释

下面就vsftpd支持三类用户加以说明:

  • 1.匿名用户,也就是不需要输入密码就可登录ftp服务器的用户,这个用户名通常是ftp或anonymous; 与匿名用户有关的设置多以 anon_选项开头。
  • 2.本地用户,也就是你Linux系统上可登录到系统的用户,这些用户是在系统上实实在在存在的用户。通常会有自己的home,shell等。与本地用户有关的设置多以local_开头或包含local_的选项。
  • 3.虚拟用户,只对ftp有效的用户。这些用户不可以登录Linux系统,只可以登录ftp服务器。其实就是一个本地用户映射成多个只对ftp服务器有效的虚拟用户。虚拟用户可以有自己的ftp配置文件,因此通常利用虚拟用户来对ftp系统的不同用户制定不同的权限,以达到安全控制的目的。与虚拟用户有关的设置以guest_开头。

如果你只是想用ftp实现对自己的共享,你可以开启本地用户;

如果你想对很多人共享,那你可以用匿名用户;

如果你需要针对不同的用户群给予不同的权限,那你就要设置更复杂的虚拟用户了。

mkdir 目录名         => 创建一个目录
rmdir 空目录名      => 删除一个空目录
rm 文件名 文件名   => 删除一个文件或多个文件
rm –rf 非空目录名 => 删除一个非空目录下的一切
touch 文件名        => 创建一个空文件

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接


推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • 如何基于ggplot2构建相关系数矩阵热图以及一个友情故事
    本文介绍了如何在rstudio中安装ggplot2,并使用ggplot2构建相关系数矩阵热图。同时,通过一个友情故事,讲述了真爱难觅的故事背后的数据量化和皮尔逊相关系数的概念。故事中的小伙伴们在本科时参加各种考试,其中有些沉迷网络游戏,有些热爱体育,通过他们的故事,展示了不同兴趣和特长对学习和成绩的影响。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
author-avatar
测试帐号
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有