ftp是什么

FTP是 File Transfer Protocol 文件传输协议的英文名称,用于在Internet上控制文件的双向传输. 同时它也是一个应用程序.一般的Linux系统默认带有ftp软件或者是vsftpd。

搭建ftp服务器目的

最近Linux服务器端硬盘容量受限,文件也多了,需要远程拷贝,找了一圈没有合适的软件,自己搞一个基于FTP服务协议的文件,让他自动远程同步,这样也方便,顺便搞个FTP服务器,对以后可以公开的资料放到FTP服务器上做共享。其实,我越来越发现,交流和共享能提升学习效率,事半功倍。

检查安装vsftpd软件

查看所有的安装的软件包 并在结果中查找包含vsftp 的文件

rpm -qa | grep vsftpd

如果没有装则使用yum命令安装

yum -y install vsftpd 

或者vsftpd有问题的可以重新装

yum -y reinstall vsftpd 

具体步骤

1、创建用户

useradd yangxi -s /sbin/nologin -d /home/yangxi #1、创建个普通用户用于连接ftp,-d的家目录是ftp连接上默认访问的。这个禁止登录,是禁止远程连接服务器,不是禁止登录ftp

最好是禁止登录,这样的话这个用户可以只用作FTP服务。

或者通过下面的命令进行模式修改:

usermod -s /sbin/nologin ftpname //限定用户ftpname不能使用telnet,只能使用ftp
usermod -s /sbin/bash ftpname //用户test恢复正常
usermod -d /ftp ftpname //更改用户ftpname的主目录为/ftp

2、配置 vsftpd.conf  配置文件

anonymous_enable=YES  #允许匿名用户登录,改成no

//在配置文件中添加下面这2行

local_root=/home/yangxi  //修改默认根目录

chroot_local_user=YES //限制住了,只允许查看他自己的家目录
其中这三个参数主要作用如下表

如果要对用户做限制需要修改下面参数中的一个,如下:
userlist_enable=YES     #启动用户列表
userlist_deny=NO        #决定是否对用户列表的用户拒绝访问ftp

同时,还需要编辑相对应的用户文件,将用户名加入即可。

userlist_file=/etc/vsftpd/user_list

4、关闭SELINUX

临时关闭

setenforce 0

永久关闭

vim /etc/selinux/config

SELINUX=disabled

3、重启vsftpd服务

查看vsftpd 服务的运行状态
systemctl status vsftpd
如果最后一条状态是stoped则启动vsftpd

systemctl start vsftpd

如果最后一条状态是started则重启vsftpd

systemctl restart vsftpd

经常会遇到的问题:

原vsftpd服务器的系统从centos6.8升级到centos7.2。vsftpd使用yum方式安装,用户采用系统用户登录。由于系统升级到centos7,yum安装的vsftpd版本改变。因此按centos6的设置,登录时报错。配置文件未修改,主要是修改了ftp的主目录权限。

这个问题发生在最新的这是由于下面的更新造成的:

- Add stronger checks for the configuration error of running with a writeable root directory inside a chroot(). This may bite people who carelessly turned on chroot_local_user but such is life.

从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。

要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录的写权限(采用该方式,将用户主目录文件熟悉修改为#chmod 555)。

FTP连接报错530 Permission denied解决方法

故障排除:

1.首先检查系统是否开启了vsftp服务,如果没有开启,先开启该服务。

2.查看配置

vsftpd的配置,配置文件中限定了vsftpd用户连接控制配置。
vsftpd.ftpusers:位于/etc/vsftpd目录下。它指定了哪些用户账户不能访问FTP服务器,例如root等。
vsftpd.user_list:位于/etc/vsftpd目录下。该文件里的用户账户在默认情况下也不能访问FTP服务器,仅当vsftpd .conf配置文件里启用userlist_enable=NO选项时才允许访问。
vsftpd.conf:位于/etc/vsftpd目录下。来自定义用户登录控制、用户权限控制、超时设置、服务器功能选项、服务器性能选项、服务器响应消息等FTP服务器的配置。

3.配置修改完成后,执行service vsftpd restart重启vsftpd服务。

500 OOPS: vsftpd: cannot locate user specified in 'ftp_username':ftp

500 OOPS: vsftpd: cannot locate user specified in 'ftp_username':ftp

的错误消息。我在google上搜了一把后来发现有一封mail非常有用:
http://lists.debian.org/debian-user/.../msg02648.html

其中有一段话提到:

Yep, I did. There is no occurrence of the string "tunable" anywhere in the vsftpd.conf man page ...

However, I've been delving into the source code, and now understand this - the author uses the name of a config file directive *prefixed by* "tunable_" inside the source code as a variable name. So what I needed to do was define "ftp_username" in vsftpd.conf. For some reason the Debian package leaves a little to be desired in this area, and neither asks you how you want this directive set, nor creates an account for use with vsftpd anonymous connections. The default for this directive is the name "ftp", but there has never been an "ftp" account on my Woody system, nor was one created by the vsftpd installation.

作者提到收到一个500 Oops但是其中提到的tunable_ftp_username哪里也找不到。后来他查看源码,发现源码中是使用一个以"tunable_"为前缀的变量,实际上相应在vsftpd.conf中应该是ftp_username这个directive。所以他在vsftpd.conf中加入了ftp_username=xxx(用户)这一行。但是他也抱怨Debian的发行版没有在任何地方标识这样的问题。而且这个ftp_username的缺省用户应该是ftp,但是woody系统缺省安装后并没有这个ftp用户存在,而且vsftpd安装后也没有添加这个用户。

注:我是用ftp_username=nobody的,然后/etc/init.d/vsftpd restart后成功登陆。

Linux下构建FTP服务器相关推荐

  1. 虚拟机linux ftp慢,虚拟机Linux下配置FTP服务器的方法

    虚拟机Linux下配置FTP服务器的方法 1.确保虚拟机系统与宿主系统是桥接设置,以方便连接. 2.在虚拟机系统中安装ftp服务器,我安装的是vsftpd服务器.由于安装的虚拟机系统CentOS 中已 ...

  2. linux+创建一个v文件共享,win10与Ubantu双系统:Linux下开启FTP服务器与创建无线热点(实现文件共享)...

    如何在win系统下使用filelizza这个软件搭建FTP服务器,然后建立一个无线局域网,让平板终端连接以后,访问电脑硬盘的文件. 如果是只在win7环境下,一切都很简单,按照上文提供的教程就可以实现 ...

  3. windows 远程访问别人的linux下的ftp服务器,linux与windows之间使用ftp相互访问(CentOS提示ftp:command not found)...

    启动linux及windows系统,这里默认linux系统的IP为192.168.1.15.打开windows的DOS终端,首先输入 :ftp 192.168.1.15 在使用账户和密码登陆:登陆格式 ...

  4. linux下搭建FTP服务器

    LINUX FTP简单配置 FTP配置 1.#vi /etc/vsftp/vsftpd.conf                #主要配置几个关键的就可以    anonymous_enable=NO ...

  5. 怎么在linux下使用ftp服务器,怎么在Linux下建立安全的FTP服务器?

    怎么在Linux下建立安全的FTP服务器? 2018-08-31 15:53 分享人:老牛 学习Linux系统时,你可能会遇到网络服务的问题,这里将介绍linux FTP服务器安全及DHCP服务的实现 ...

  6. linux 下安装ftp服务器

    最后重启    # service vsftpd restart 1.查看是否安装vsftp rpm -qa | grep ftp 如果出现    vsftpd-2.0.5-16.el5_5.1  说 ...

  7. Linux下搭建FTP服务器教程

    一.基本安装 1.运行以下命令安装 vsftpd. yum install -y vsftpd 2.运行以下命令打开及查看etc/vsftpd cd /etc/vsftpd ls 说明: /etc/v ...

  8. linux-ftpd-0.17制作ftpd嵌入式linux下的ftp服务器

    首先下载下嵌入式linux服务器资源,linux-ftpd-0.17.tar.gz 下面我们将开始制作嵌入式linux下ftp服务器 1.解压资源 tar xvzf linux-ftpd-0.17.t ...

  9. Linux下搭建FTP服务器笔记

    1.检查是否安装vsftpd软件 使用如下命令# rpm -qa |grep vsftpd 可以查看出是否安装了vsftpd软件,如果没有安装,使用yum命令进行安装 yum install vsft ...

最新文章

  1. 如何开发auto complete 智能提示功能
  2. VBS 连接数据库 - 样例
  3. 签入VSS中遇到UTF-8问题
  4. 计算机主机内部防尘装置,一种计算机主机用防尘装置的制作方法
  5. java setrequestheader_Java SampleResult.setRequestHeaders方法代码示例
  6. python pil_python PIL 图像处理
  7. windows mysql5.7 忘记root密码
  8. 动态列排序_Excel表格利用函数制作排序器(可依据不同字段、升降序排序)
  9. 2020年需要牢记的10个深度学习Best Practices
  10. linux常用删除空文件夹,Linux基础 linux系统中的批量删除文件与空文件删除的命令介绍...
  11. 纽约出租车计费问题:一个简单的线性模型
  12. 谈谈javascript中原型继承
  13. 小D课堂 - 零基础入门SpringBoot2.X到实战_第2节 SpringBoot接口Http协议开发实战_8、SpringBoot基础HTTP接口GET请求实战...
  14. 专业能力与行业价值 IBM在华的商业人工智能实践
  15. 039 我的技术成长历程
  16. 匠心独运: python打造GUI图形小窗口
  17. CDH下关于用户权限问题:Error while processing statement:xxxxxxThe directory must be owned by the submitte....
  18. Linux获取纳秒级时间,WINDOW和LINXU下获取纳秒级时间精度
  19. 内存学习(三)内存泄露
  20. CV赛事|“华为云杯”2020深圳开放数据应用创新大赛•生活垃圾图片分类

热门文章

  1. my understanding for love
  2. 来自长辈的5句教导!
  3. 为什么事情执行不下去?
  4. net.sf包JSONArray与JSONObject遍历
  5. zabbix源码安装 令人窒息的操作
  6. Trie 树——搜索关键词提示 1
  7. 2017-10-9(Volley使用范例源码分析)
  8. RHEL 6.x 搭建企业级FTP
  9. 为什么Jedis操作后要主动归还?
  10. 杭电1597_find the nth digit