Ubuntu上提供两种常用的ftp服务应用:vsftpd 和 tftpd,区别如下:

1)vsftpd 支持客户端上下传文件,支持浏览器显示及下载,支持用户名密码认证,支持匿名访问,默认端口TCP:21

2)tftpd是一种用于客户端与服务器之间最简单的文件传输软件,不支持及浏览器操作,默认端口UDP:69

因为要用作资料共享库,所以需要浏览器下载功能,故选择vsftpd。

一、安装

sudo aptitude install vsftpd

二、创建根服务目录

sudo mkdir /home/ftp  #位置可自己定义

三、创建ftp服务用户

sudo useradd -d /home/ftp -s /bin/bash ftp  #最后的ftp替换也可以替换成其他用户名称
sudo passwd ftp  #给ftp用户设置密码

四、修改vsftpd配置文件

常用配置说明:

anonymous_enable=NO #禁止匿名访问
local_enable=YES #本地主机访问允许
write_enable=YES #写允许
anon_upload_enable=YES #匿名上传允许
anon_mkdir_write_enable=YES #匿名创建文件夹允许
dirmessage_enable=YES #进入文件夹允许
xferlog_enable=YES #ftp 日志记录允许
connect_from_port_20=YES #允许使用20号端口作为数据传送的端口

vsftpd默认至支持浏览根服务目录(/home/ftp)之上的目录(即 / ),这很危险,所以需要关闭该权限,设置如下:

# chroot_list_enable below.
chroot_local_user=YES

上面配置会设置所有用户都不能离开家目录,如果想对个别用户开启特权,则需要添加配置。有两种设置方法:

1)在/etc/vsftpd.chroot_list中添加特权用户,格式为每个用户一行,在此文件里的用户不受权限约束。

chroot_local_user=YES
chroot_list_enable=YES #是否启动限制用户的名单
chroot_list_file=/etc/vsftpd.chroot_list #可在文件中设置多个账号

2)相反的配置,在/etc/vsftpd.chroot_list中添加用户名称,格式为每个用户一行,在此文件里的用户将不能切换目录。

chroot_local_user=NO #是否将所有用户限制在主目录
chroot_list_enable=YES #是否启动限制用户的名单,这里必须为YES,否则不起作用
chroot_list_file=/etc/vsftpd.chroot_list #可在文件中设置多个账号

五、重启服务

sudo /etc/init.d/vsftpd restart

六、通过浏览器访问:ftp://<ip-addr>,并输入用户名及密码即可查看

七、通过浏览器访问,中文文件名显示乱码

简单处理就是:点击浏览器的“查看”菜单,然后进入“文字编码”,选择Unicode或UTF8,即可正确显示。

或者修改服务器系统的默认语言为zh_CN.GBK。

八、如果将vsftpd的根目录(/home/ftp)设置了写权限,则连接ftp服务时会提示如下错误:

500 OOPS: vsftpd: refusing to run with writable root inside chroot()

两种解决方法:

1)移除/home/tftp的写权限,创建一个upload子目录,给予777权限,用于文件上传

sudo chmod a-w /home/tftp
sudo mkdir /home/tftp/upload
sudo chmod 777 /home/tftp/upload

2)在/etc/vsftpd.conf里面的“chroot_local_user=YES”下面增加一行使根目录具有写权限(未测试)

  chroot_local_user=YES
allow_writeable_chroot=YES

参考:https://www.zhukun.net/archives/7654

ubuntu上vsftpd服务配置的更多相关文章

  1. Linux vsftpd服务配置以及三种验证方式以及常见错误解决办法

    文件传输协议(FTP): 文件传输协议(FTP,File Transfer Protocol),即能够让用户在互联网中上传.下载文件的文件协议,而FTP服务器就是支持FTP传输协议的主机,要想完成文件 ...

  2. Ubuntu上安装与配置JDK1.8

    Ubuntu上安装与配置JDK1.8 一.下载 下载JDK,由于是Ubuntu. 所以去官网下载tar.gz格式的就可以(ubuntu使用浏览器下载网速比較慢,所以推荐到window上下载好). ht ...

  3. VsFtpd服务配置简明笔记

    Ftp服务是最常用的文件传输方式,把配置步骤记录下来,以备将来使用. 1.用YUM安装VsFtpd服务:[root@Redis usr]# yum install vsftpd 2.安装完成后启动Vs ...

  4. Linux vsftpd服务配置具体解释

    [背景] 近日.一朋友dominoserver要进行升级.迁移,搭建了linux測试系统,也开启vsftpd服务,但是配置的ftp账号,程序无法正常下载附件. [问题跟踪] 通过ftpclient连接 ...

  5. 【树莓派】服务配置相关3:基于Ubuntu Server的服务配置

    该文接续之前写过的两篇: [树莓派]服务配置相关 [树莓派]服务配置相关2:基于RPi Desktop的服务配置 这是我个人用来进行树莓派盒子安装配置的脚本,对于外部其他博友,可以部分参考,但不需要逐 ...

  6. 关于Ubuntu上的服务文件

    问题发现 今天在给ubuntu系统安装ftp服务时,一件奇怪的事引起了我的注意.当我服务安装完成后,想要测试一下是否能控制服务,便输入如下命令: service vsftpd restart 它返回的 ...

  7. Ubuntu上latex+atom配置

    网上流传的latex+atom大都是windows上的,Ubuntu与windows上的配置方式大同小异,这里写下自己的经验: 分为三个步骤,首先安装texlive,texlive是latex的依赖库 ...

  8. linux vsftpd 服务配置

    vsftpd.conf配置如下: # Example config file /etc/vsftpd/vsftpd.conf # # The default compiled in settings ...

  9. [linux] shell脚本编程-ubuntu创建vsftpd服务

    1.  useradd -s /bin/bash -m 用户名 ,  创建用户,自动创建家目录 , 设置登录shell 2.  echo 用户名:密码 | chpasswd ,非交互式设置密码 3.  ...

随机推荐

  1. SpringBoot入门篇--关于properties和yml两种配置文件的一些事情

    我们在使用SpringBoot这个框架的时候都一定使用或者说是见到过application.properties或者是application.yml,经不住有人就会问这俩文件到底是什么情况,其实说白了 ...

  2. 有哪些你不知道的python小工具

    python作为越来越流行的一种编程语言,不仅仅是因为它语言简单,有许多现成的包可以直接调用. python中还有大量的小工具,让你的python工作更有效率. 1.- 快速共享 - HTTP服务器 ...

  3. 定位JVM内存溢出问题思路总结

    JVM的内存溢出问题,是个常见而有时候有非常难以定位的问题.定位内存溢出问题常见方法有很多,但是其实很多情况下可供你选择的有效手段非常有限.很多方法在一些实际场景下没有实用价值.这里总结下我的一些定位 ...

  4. Oracle SQL 优化规则

    一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用 系统提交实际应用后,随着数据库中数据的增加,系 ...

  5. mazing ASP.NET Core 2.0【转】

    前言 ASP.NET Core 的变化和发展速度是飞快的,当你发现你还没有掌握 ASP.NET Core 1.0 的时候, 2.0 已经快要发布了,目前 2.0 处于 Preview 1 版本,意味着 ...

  6. leetcode394

    class Solution { public: string decodeString(string s) { stack<string> chars; stack<int> ...

  7. <记录> Razor引擎&视图布局

    标识符 @ Razor支持HTML和C#代码混编,意味着可以在HTML中随意输出变量 基本使用方法 直接@后面跟变量(当遇到 HTML标签 .空格.换行符等特殊符号时 便认为@之后到特殊符号前为变量名 ...

  8. SQL Server截取字符串

    --SQL Server截取字符串 , Len('hello@163.com')) ,charindex('.','hello@163.com'))

  9. Python代码的人机大战(循环嵌套)

    第一次动手写随笔,记录一下今早的1.5小时努力成果 题目是这样的 : 人和机器进行猜拳游戏写成一个类,首先选择角色:1 曹操 2张飞 3 刘备,然后选择的角色进行猜拳:1剪刀 2石头 3布 玩家输入一 ...

  10. [leetcode]243. Shortest Word Distance最短单词距离

    Given a list of words and two words word1 and word2, return the shortest distance between these two ...