1.ftp与sftp

大致了解下:

ftp是一个文件传输协议,linux环境需要它才能支持文件的传输与查看,它的默认端口是21。

sftp是加密/解密的文件传输协议,因为它每次传输都有加密解密的步骤,所以效率比ftp低的多但是安全。

2.ftp服务的安装

使用命令行从软件库下载安装:apt-get install vsftp ftp

3.ftp服务的匿名访问测试

安装完成后我们可以进行测试,首先测试一下匿名登录

修改vsftpd的配置文件:vim /etc/vsftpd.conf(配置文件的位置可能不同)

将anonymous_enable设置为YES,意思是允许匿名登录;

再添加一行匿名登录的默认目录:anon_root=/home/annoDir;

最后启动vsftpd服务:/etc/init.d/vsftpd start

用浏览器匿名访问目录:

可以看到,无需输入账号密码就可以访问annoDir这个目录:

4.ftp服务的配置详解

参考(https://www.linuxidc.com/Linux/2017-04/142493.htm

anonymous_enable=NO             # 关闭匿名登录 默认为NO
local_enable=YES            # 允许本地用户登录
write_enable=YES            # 启用可以修改文件的 FTP 命令
local_umask=022               #设置本地用户新增文档的umask,默认为022,
这里的022ftp服务会把它解析成2进制的000 010 010 再取反,即755,代表了文件的权限,即 对新增的目录有读写执行权
dirmessage_enable=YES           # 当用户第一次进入新目录时显示提示消息(按照默认就好)
xferlog_enable=YES          # 一个存有详细的上传和下载信息的日志文件(启用日志文件)
connect_from_port_20=YES        # 在服务器上针对 PORT 类型的连接使用端口 20(FTP 数据)
xferlog_std_format=YES          # 保持标准日志文件格式(默认不动)
listen=NO                 # 阻止 vsftpd 在独立模式下运行,默认为NO,但是据说设置为NO的话,有些配置功能会被限制(找不到相关资料)
listen_ipv6=YES             # vsftpd 将监听 ipv6 而不是 IPv4,你可以根据你的网络情况设置,如果需要同时支持ipv4和ipv6的话,需要配置2套
pam_service_name=vsftpd         # vsftpd 将使用的 PAM 验证设备的名字(默认就好)
userlist_enable=YES             # 允许 vsftpd 加载用户名字列表,
注意,默认vsftp是基于/etc/vsftpd.userlist来作为禁止访问ftp的名单的,比如其中就包含root用户
我们也可以通过配置 userlist_deny=NO 这个选项来反转配置,即只有该名单内的用户可以访问该目录。
chroot_local_user=YES
allow_writeable_chroot=YES

 #选项chroot_local_user=YES 表示本地用户将进入 chroot 环境,当登录以后默认情况下是其 home 目录

 并且我们要知道,默认情况下,出于安全原因,VSFTPD 不允许 chroot 目录具有可写权限。然而,我们可以通过选项 allow_writeable_chroot=YES 来允许。

chroot_list_enable=YES #限制只访问自身目录

chroot_list_file=/etc/vsftpd/vsftpd.chroot_list  #限制访问自身目录的用户列表

5.新增ftp用户

正常使用ftp服务,很少会用匿名登录,我们需要一个专门的用户去做ftp操作。

1.新建用户(xjxftp)并设置主目录和密码:

2.在ftp的配置文件中限制用户的访问路径:

编辑vsftpd.conf文件,设置chroot_local_user=YES

同时,新建一个chroot_list文件,将受限制的用户加入:一个用户名占一行,直接加入就好。

重启服务:root@instance-7k2jqcks:/etc# ./init.d/vsftpd restart

注:如果我们设置了chroot_local_user=YES,又设置了chroot_list_enable=YES限制访问自身目录,则拥有写权限的用户将无法登录:

这是由于ftp新版本的安全机制导致的(https://www.cnblogs.com/zhjh256/p/9155281.html

我们当然不能没有写的权限,这里我们可以设置 allow_writeable_chroot=YES 来允许(如果white_enable=YES这行被注释掉的话也把它放开)

这样,我们使用xftp就可以新建文件,并且所有的操作也被限制在该用户主目录下:

6.ftp用户无法新建文件夹和403

这里稍微说一点点遇到的小问题,一个是提到的限制用户访问主目录后的无法写的问题,上面的已经有方案了。

403的问题:

1.如果我们使用阿里云服务器,它进入的协议和端口默认是有限制的,我们需要自己做安全组配置打开20和21端口,如果服务器自带防火墙也一样。

2.还有就是你ftp登录的用户有没有对主目录应有的访问读写权限。

3.默认ftp是对ftpusers这个文件里的用户禁止访问的。它里面就包含root,如果我们的用户在/etc/ftpusers这个文件夹里,登录验证也将失败。

无法新建文件夹的问题:注意有的版本配置文件中write_enable=YES 这个是被注释掉的,这样我们无法写,需要把它打开。

7.vsftpd配置必须需要账号密码访问

把user_list文件作为允许访问的用户列表

配置文件中 配置 userlist_enable=YES和 userlist_deny=NO

Ubuntu16 FTP的安装,基本配置与权限控制的更多相关文章

  1. Linux FTP的安装与配置

    Linux FTP的安装与配置   ftp安装部分,操作步骤如下: 可以使用yum命令直接安装ftp # yum install vsftpd ftp服务的开启与关闭命令: 开启:# service  ...

  2. Linux FTP的安装与配置(转)

    Linux FTP的安装与配置   ftp安装部分,操作步骤如下: 可以使用yum命令直接安装ftp # yum install vsftpd ftp服务的开启与关闭命令: 开启:# service  ...

  3. Linux ftp软件安装、配置和启动

    ftp软件安装.配置和启动及相关问题的解决在测试环境使用过程中经常使用.本文以SuSE11sp1上vsftpd的安装过程进行介绍. 测试环境 SuSE11sp1 vsftp软件安装检查 1.rpm - ...

  4. CentOS 7 FTP的安装与配置

    CentOS7 FTP安装与配置 1.FTP的安装 #安装yum install -y vsftpd #设置开机启动systemctl enable vsftpd.service #启动systemc ...

  5. Ubuntu16.04 oh_my_zsh 安装与配置

    参考文章 Ubuntu上使终端显示Git分支(oh-my-zsh) oh-my-zsh的安装与基本配置 Ubuntu 下安装oh-my-zsh 前言 之前学习Laravel的时候,经常要切换git分支 ...

  6. Ubuntu16.04下安装和配置Redis

    一.前提条件 需要连接互联网,然后执行sudo apt-get update更新软件包 二.执行安装命令 sudo  apt-get install redis-server 执行后如下图所示,我们输 ...

  7. CentOS7下FTP的安装与配置

    1.安装vsftpd 1 [root@localhost modules]# yum install -y vsftpd 2.编辑ftp配置文件 1 [root@localhost modules]# ...

  8. Ubuntu16.04.3安装并配置samba方法

    目的:单个Linux用户可以在windows电脑上通过映射网络驱动器的方式来访问自己的工作目录. 方法如下: 1.安装smb服务器:apt-get install samba2.安装smb支持的文件系 ...

  9. ftp server安装与配置

    http://note.youdao.com/noteshare?id=905513cfcdba7d6a8d2fbdd0874a6259

随机推荐

  1. dva/docs/GettingStarted.md

    进入目录安装依赖: npm i 或者 yarn install开发: npm run dev npm install 太慢,试试yarn吧.建议用npm install yarn -g进行安装. Co ...

  2. JS 总结

    加var与不加var的区别: 简单来说就是加了var是局部变量 不加是全局变量.只有加了var的情况下就能限定该变量的使用范围 这样在别的方法里面也可以命名同样的变量了

  3. Offcie2013 无法显示 Aurora解决方法

    问题:安装Office2013和Aurora后,Word菜单栏中无Aurora 原因:aurora安装目录中缺失office.dll,word2013未加载COM文件office.dll和模板文件wo ...

  4. Android 进阶 教你打造 Android 中的 IOC 框架 【ViewInject】 (上)

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/39269193,本文出自:[张鸿洋的博客] 1.概述 首先我们来吹吹牛,什么叫Io ...

  5. 再谈DOMContentLoaded与渲染阻塞—分析html页面事件与资源加载

    浏览器的多线程中,有的线程负责加载资源,有的线程负责执行脚本,有的线程负责渲染界面,有的线程负责轮询.监听用户事件. 这些线程,根据浏览器自身特点以及web标准等等,有的会被浏览器特意的阻塞.两个很明 ...

  6. c# 如何读取web.config中的内容(ConfigurationManager)

    1.web.config中写入 <appSettings>    <add key="TokenQPark" value="http://localho ...

  7. 【最小生成树】Bzoj1601[Usaco2008 Oct]灌水

    Description Farmer John已经决定把水灌到他的n(1<=n<=300)块农田,农田被数字1到n标记.把一块土地进行灌水有两种方法,从其他农田饮水,或者这块土地建造水库. ...

  8. BZOJ_3110_[Zjoi2013]K大数查询_整体二分+树状数组

    BZOJ_3110_[Zjoi2013]K大数查询_整体二分+树状数组 Description 有N个位置,M个操作.操作有两种,每次操作如果是1 a b c的形式表示在第a个位置到第b个位置,每个位 ...

  9. Entity Framework Core 关联删除

    关联删除通常是一个数据库术语,用于描述在删除行时允许自动触发删除关联行的特征:即当主表的数据行被删除时,自动将关联表中依赖的数据行进行删除,或者将外键更新为NULL或默认值. 数据库关联删除行为 我们 ...

  10. 企业私有源代码上传github致入侵之大疆案判决了

    事件简单回顾: 1.2017年8月28日,大疆宣布“大疆威胁识别奖励计划”,最高3万美元: 2.然而在此之前,大疆农业事业部某员工将企业私有源代码上传到了github: 3.就职于大疆竞对公司Depa ...