你买了个主机就像是买了块地皮,搭建FTP就像是盖房子,我在地皮上建房子,然后创建的用户就像是钥匙,我给谁钥匙(权限),谁就可以到我家去玩,去放东西,拿东西。

虽然我们买不起现实的房子,但是我们可以买互联网上的房子啊,哈哈哈。


本教程1是在ubuntu 16 64位的服务器版本下实际搭建成功过的。

搭建ftp服务器大致分为如下几个步骤:

1安装vsftpd

2创建ftp服务器默认文件夹,并授权

3创建ftp用户

4修改vsftpd的配置文件

5重启服务

6客户端的登录与上传

7登陆失败常见问题

(教程里的命令不一定适合所有版本和系统,具体的命令请先思考是否正确再去使用)


1安装vsftpd

ubuntu下安装vsftpd,可以使用内置的apt工具,具体的命令是sudo apt-get install vsftpd

apt工具会自动安装以及配置,然后配置文件的在 /etc/vsftpd.conf 里面。

然后使用 sudo service –status-all 命令查看vsftpd服务是否开启了。

 [ - ]  sendsigs
     [ + ]  ssh
     [ + ]  udev
     [ + ]  ufw
     [ - ]  umountfs
     [ - ]  umountnfs.sh
     [ - ]  umountroot
     [ - ]  unattended-upgrades
     [ + ]  urandom
     [ - ]  uuidd
     [ + ]  vsftpd
     [ - ]  x11-common

可以看到vsftpd前面是个加号,证明以及安装成功,并且服务以及开启了。

2创建ftp服务器默认文件夹,并授权

#使用mkdir命令创建ftp默认文件夹
sudo mkdir /home/uftp
#给文件加权限,让文件拥有所有权限,可读写
chmod 777 /home/uftp

3创建ftp用户

#实际上这一步就是利用了linux分用户使用的特性,创建了一个用户,这个用户只被赋予了对指定目录特定的权限。
sudo useradd -d /home/uftp -s /bin/bash uftp
#设置用户uftp的登录密码,这里会让你输出两次密码
sudo passwd uftp

4修改vsftpd的配置文件

总的来说就是允许修改,允许上传与下载,创建用户表,用户表生效,这几个方面的命令。

#使用vim去修改配置文件,关于vim的使用请先行学习
sudo vim /etc/vsftpd.conf
#打开conf文件后会出现很多注释掉的配置以及对应的解释,蓝色的字体比较难看清,可调高屏幕亮度
修改点
# Uncomment this to allow local users to log in.
local_enable=YES
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#下面这条是允许匿名用户可上传,初学者可以打开,但是不安全,还有条匿名用户下载的这里没有写,也需要加上
#anon_upload_enable=YES
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
chown_uploads=YES
chown_username=whoever

向文件中添加”userlist_deny=NO

userlist_enable=YES userlist_file=/etc/allowed_users”

和”seccomp_sandbox=NO”–>使文件中的”local_enable=YES”–>保存。

注意,还需要创建allowed_users文件,不过这里使用vim打开不存在的文件时会自动创建。

sudo vim /etc/allowed_users

打开后是一个空白的文件,添加用户,uftp,保存退出即可。

5重启服务

#使用service命令
sudo service vsftpd restart
#然后再去查看vsftpd的服务状态,确保正在运行
sudo service --status-all 

6客户端的登录与上传

我是使用的是filezilla,需要填写主机,用户名,密码,端口。

主机就是自己的远程主机的IP

用户名 uftp

密码即之前创建用户设置的内容

端口 22(我自己的远程21用不了,写的是22)

登陆后我这里就会解析出远程ftp上的路径内容

7登陆失败常见问题

A、vsftpd配置文件设置的不全,相应的权限没有打开

仔细阅读config里面注释,写的很详细,将对用的权限打开

B、排错思路:

1、查看要上传的文件权限,发现我新建的testfile 文件权限为-rw-r–r–,应该不是这个文件权限的问题,不过为了排除,还是修改了权限,改成所有权限都有,chmod 777 testfile

2、修改权限之后,重新修改,发现还是denied,上网查,有同学指出修改配置文件中的参数,在/etc/vsftpd.conf配置文件最后增加一行即可:write_enable=YES,检查/etc/vsftpd.conf配置文件中的write_enable,发现它的默认值是YES,排除这个原因

3、接下来考虑是不是pub文件夹权限问题,ftp>ls 查看pub文件夹详细信息(要先ftp>cd ..返回上一级目录),发现pub文件夹具有所有的权限,排除这个因素

4、设置/etc/vsftpd.conf配置文件中的anonymous_enable=YES,anon_upload_enable=YES,anon_mkdir_write_enable=YES,修改完毕后,重启ftp服务,重新连接

上面的这个思路第4条风险非常大,匿名用户可以上传内容,也可以创建文件,也就意味着别人可以在你的家里为所欲为,不过初学还是可以打开的。

linux下FTP服务器搭建教程1的更多相关文章

  1. 《Linux下FTP服务器搭建及FTP使用》

    .LOGAndy:mxtd114 <Linux下FTP服务器搭建> 0.root登录 1.安装ftp # yum -y install ftp 2.安装vsftpd # yum -y in ...

  2. linux下ftp服务器搭建

    1.yum install vsftpd  使用yum安装ftp 2.创建并授权ftp文件目录   mkdir -P /ftp/ftpadmin       chmod -R 777 /ftp/ftp ...

  3. Linux下DNS服务器搭建详解

    Linux下DNS服务器搭建详解 DNS  即Domain Name System(域名系统)的缩写,它是一种将ip地址转换成对应的主机名或将主机名转换成与之相对应ip地址的一种机制.其中通过域名解析 ...

  4. linux下的服务器搭建集成环境

    linux下的服务器搭建集成环境 ——写给初学者的我们 1.准备工具 1.1 SecureCRT SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录 ...

  5. Linux下dns服务器搭建

    Linux下dns服务器搭建1-环境Red Hat Enterprise Linux Server release 6.7 (Santiago)2-配置本地yum源安装dns相关包yum -y ins ...

  6. Linux下SVN服务器搭建配置

    Linux下SVN服务器搭建配置 1.SVN服务安装 yum install subversion 2.创建SVN代码仓库 mkdir /data/svn svnadmin create /data/ ...

  7. Linux 之 FTP服务器搭建

    FTP服务器搭建 参考教程:[千峰教育] 1.关闭防火墙: service iptables stop 2.关闭Selinux setenforce 0 3.安装所需要依赖及编译工具 yum inst ...

  8. Linux中ftp服务器搭建

    一.FTP工作原理 (1)FTP使用端口 [root@localhost ~]# cat /etc/services | grep ftp ftp-data 20/tcp #数据链路:端口20 ftp ...

  9. 写给大忙人的centos下ftp服务器搭建(以及启动失败/XFTP客户端一直提示“用户身份验证失败”解决方法)

    注:个人对偏向于底层基本上拿来就用的应用,倾向于使用安装包,直接yum或者rpm安装:而对于应用层面控制较多或者需要大范围维护的,倾向于直接使用tar.gz版本. 对于linux下的ftp服务器,实际 ...

随机推荐

  1. Java - extends

    继承 一个类得到了另一个类当中的成员变量和成员函数. Java只支持单继承,一个父类可以有多个子类. 使用继承,可减少重复代码.把重复代码放入父类中.需要添加共同的成员变量或函数时可以直接操作父类. ...

  2. 修改tomcat编码方式

    打开server.xml <Connector URIEncoding="UTF-8" connectionTimeout="20000" port=&q ...

  3. 51nod_1264:线段相交(计算几何)

    题目链接 关于判断线段相交,具体算法见 点击打开链接 ,先进行快速排斥试验,若不能判断出两个线段不相交,再进行跨立试验. //吐槽1,long long 会溢出... //吐槽2,只进行跨立试验的虽然 ...

  4. Effective Objective-C 2.0 Tips 总结 Chapter 3 & Chapter 4

    Chapter 3 接口与 API 设计 Tips 15 使用前缀避免明明空间冲突 Objective-C 没有命名空间,所以我们在起名时要设法避免命名冲突 避免命名冲突的方法就是使用前缀 应用中的所 ...

  5. RxSwift 系列(五) -- Filtering and Conditional Operators

    前言 本篇文章将要学习RxSwift中过滤和条件操作符,在RxSwift中包括了: filter distinctUntilChanged elementAt single take takeLast ...

  6. tensorflow bias_add应用

    import tensorflow as tf a=tf.constant([[1,1],[2,2],[3,3]],dtype=tf.float32) b=tf.constant([1,-1],dty ...

  7. MySQL学习笔记(五):MySQL表级锁和行级锁

    一:概述 相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制.比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking ...

  8. Linux文件系统,ntfs分区显示只读文件系统,提示超级快损坏

    背景:某天当我打开自己的设备,突然发现ntfs分区无法写入任何文件,提示为只读文件系统,具体现象如下: 修复过程:排除权限问题,使用fsck进行修复无果后,使用e2fsck进行修复 显示超级快损坏,这 ...

  9. maven快速上手

    1.maven安装 首先下载apache-maven-3.3.3-bin.zip(版本可以自己根据自己想要的下载). 解压后如下:   接下来配置系统环境变量: 到此,maven安装好了,接下来输入 ...

  10. OpenLayers3--ol3--新特性

    OL3: A high-performance, feature-packed library for all your mapping needs < 一个可以满足各种地图应用的高性能的.功能 ...