FTP服务器的搭建,我要实现的需求是:

  不允许匿名访问,因为我的机器不想让谁都能登录上来,随便获取文件,

  需要锁定一个目录,因为在家里,我需要给媳妇下载一些电影 韩剧之类的东西,媳妇会来我机器下载,但是我不想让他随意操作我的东西。

  万一删除我的配置文件,我就惨了(吐槽一下韩剧:媳妇问我,你都没看过韩剧怎么知道它不好看呢,我说:我没吃过屎 但是知道它一定不好吃!)

  另外,需要本机也能访问,因为我要做一些关于FTP的测试。

  不单独建立FTP用户,FTP也使用ubuntu桌面的用户进行登录和操作,

  我还不希望FTP开始启动。

好了 我们开始安装,很简单。

sudo apt-get install vsftpd

30秒内估计就能安装完。

下面开始配置:

首先备份配置文件。

linuxidc@ubuntu:/etc/init$ cd /etc/

linuxidc@ubuntu:/etc$ sudo cp vsftpd.conf vsftpd.conf.old

接下来就是开始配置了,

修改配置文件会报出没有权限修改的错误(即修改配置文件后不能保存)

  这个时候使用命令:

咱们就针对需求来:

1. 不允许匿名访问,因为我的机器不想让谁都能登录上来,随便获取文件,

  配置如下:

  23 anonymous_enable=NO

  2.需要锁定一个目录,因为在家里,我需要给媳妇下载一些电影 韩剧之类的东西,

   媳妇会来我机器下载,但是我不想让他随意操作我的东西。

   万一删除我的配置文件,我就惨了

  配置如下:

  152 local_root=/home/linuxidc/公共的/FTP共享文件

  

备注:[FTP共享文件] 这个文件夹是我新建出来的

  另外,需要本机也能访问,因为我要做一些关于FTP的测试。

  配置如下:

  26 local_enable=YES

  不单独建立FTP用户,FTP也使用ubuntu桌面的用户进行登录和操作,

  配置如下:

  120 #chroot_local_user=YES

  121 chroot_list_enable=YES

  122 # (default follows)

  123 chroot_list_file=/etc/vsftpd.chroot_list

  这里需要/etc/vsftpd.chroot_list 这个文件,如果没有请新建:

  sudo gedit /etc/vsftpd.chroot_list

  内容如下(例如我桌面的用户名为linuxidc):

duoduo

  其实就是把你的用户名写进去

  我还不希望FTP开始启动。 一会单独说!

现在可以重启FTP了。

linuxidc@ubuntu:/etc$ sudo service vsftpd restart
vsftpd stop/waiting
vsftpd start/running, process 303

OK 看到这些 证明配置文件没有问题,FTP启动了

下面直接访问FTP 看看:

linuxidc@ubuntu:/etc$ ftp 127.0.0.1
Connected to 127.0.0.1.
Welcome to linuxidc's FTP service.
Name (127.0.0.1:linuxidc): duoduo
Please specify the password.
Password:
OOPS: vsftpd: refusing to run with writable root inside chroot()
Login failed.
Service not available, remote server has closed connection
ftp>

居然报了一个500的错误
vsftpd: refusing to run with writable root inside chroot()

。其实这里是需要特殊说明的,原因出在这里

120 #chroot_local_user=YES

121 chroot_list_enable=YES

122 # (default follows)

123 chroot_list_file=/etc/vsftpd.chroot_list

我们用

chroot_list_enable=YES 和 chroot_list_file=/etc/vsftpd.chroot_list配合使用,使得只有在vsftpd.chroot_list中配置的用户才能登录FTP。

对于这要的配置有一个特殊的要求,就是vsftpd.chroot_list里面配置的用户,对于前面local_root配置的目录不能有写的权限!

也就是/home/linuxidc/公共的/FTP共享文件 这个文件夹 对于linuxidc这个用户不能有写的权限,

我们为了额操作方便可以这么做:

allow_writeable_chroot=YES (添加到配置文件vsftpd.conf)

这样,linuxidc这个用户对于/home/linuxidc/公共的/FTP共享文件没有写权限了,

现在重启FTP 重新登录看看:

linuxidc@ubuntu:/etc$ ftp 127.0.0.1
Connected to 127.0.0.1.
Welcome to linuxidc's FTP service.
Name (127.0.0.1:linuxidc): duoduo
Please specify the password.
Password:
Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

OK  FTP 好了 可以登录了

但是我刚才 sudo chown -R root:root /home/linuxidc/公共的/FTP共享文件/ 这个操作
还带来了一个麻烦。就是FTP共享文件在我桌面登录时,不能任意复制粘贴操作文件了,但是我还要必须保持linuxidc用户对[FTP共享文件]
这个文件夹不可写。这该怎么办呢?

其实很简单,

cd /home/linuxidc/公共的/FTP共享文件
sudo mkdir FTPFILES
sudo chown -R linuxidc:duoduo FTPFILES

这样 就保持了 FTP共享文件 文件夹linuxidc用户不可写,但duoduo用户用可以在桌面登录时任意操作文件了,只不过此时的随意范围在FTPFILES文件夹范围呢了。

这样基本FTP服务基本搭建完成了。

对了 忘记了一点。就是不让FTP服务开机启动。操作如下:

linuxidc@ubuntu:/etc/init$ cd /etc/init/
linuxidc@ubuntu:/etc/init$ sudo cp vsftpd.conf vsftpd.conf.old

编辑配置文件

sudo gedit /etc/init/vsftpd.conf

将#start on runlevel [2345] or net-device-up IFACE!=lo 修改为start on runlevel [345] 如下:

#start on runlevel [2345] or net-device-up IFACE!=lo
start on runlevel [345]
stop on runlevel [!2345]

这次重启FTP 重启系统 彻底完成。

这里建议大家查一下:chroot_local_user  chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list 相关的资料,这里面灵活性配置很高的。

Ubuntu 14.04 下FTP服务器的搭建的更多相关文章

  1. ubuntu 14.04 下FTP服务器的搭建--锁定用户目录,解决vsftpd: refusing to run with writable root inside chroot()

    FTP服务器的搭建,我要实现的需求是: 不允许匿名访问,因为我的机器不想让谁都能登录上来,随便获取文件, 需要锁定一个目录,因为在家里,我需要给媳妇下载一些电影 韩剧之类的东西,媳妇会来我机器下载,但 ...

  2. Ubuntu14.04下FTP服务器的搭建配置 标签: ubuntuftp服务器虚拟机 2017-06-13 15:24 161人阅读 评

    首先说明一下,我是在虚拟机中装的Ubuntu14.04,物理机是Win10,最初只是为了在两个系统间传输文件才在Ubuntu中安装了ftp服务器,从Windows端登陆其即可.最初也是按照网上的各种教 ...

  3. Ubuntu 14.04下MySQL服务器和客户端的安装

    下面进行简单的配置 安装完成后通过修改/etc/mysql/my.cnf(此文件为mysql的配置文件).将文件中的binding-address=127.0.0.1注释掉.其它配置根据需要更改. H ...

  4. Ubuntu 14.04配置FTP服务器

    搭建: 1.sudo apt-get update                                        #更新软件 2.sudo apt-get install vsftpd ...

  5. Ubuntu 14.04 下搭建SVN服务器 svn://

    Ubuntu 14.04 下搭建SVN服务器 svn:// 安装软件包: sudo apt-get install subversion 之后选择SVN服务文件及配置文件的放置位置.我放在了/srv下 ...

  6. Ubuntu 14.04 下搭建SVN服务器 (转载自 http://www.linuxidc.com/Linux/2015-01/111956.htm)-------------我所用到是红色字体

    http://www.linuxidc.com/Linux/2015-01/111956.htm Ubuntu 14.04 下搭建SVN服务器 svn:// 安装软件包: sudo apt-get i ...

  7. Ubuntu 14.04下java开发环境的搭建--3--Tomcat及MySQL的安装

    前面两篇文章,已经说明了JDK和Eclipse 的安装方法,下面简单说一下,Tomcat及MySQL的安装方法. Tomcat的安装. 在合适的地方解压apache-tomcat-6.0.39.tar ...

  8. Ubuntu 14.04下安装功能强大的屏幕截图软件 Shutter

    [注释]试用了一下,果然很强大,牛逼 一款功能强大的屏幕截图软件——Shutter,Shutter最基本的就是截图功能了,在设计上可以自由选定区域,同时选定之 后依然可以通过上下左右四个地方来改变选区 ...

  9. 解决ubuntu 14.04 下eclipse 3.7.2 不能启动,报Could not detect registered XULRunner to use 或 org.eclipse.swt.SWTError: XPCOM 等问题的处理

    对于eclipse 3.7.2在ubuntu 14.04下不能启动,需要在 eclipse/configuration 目录下的config.ini文件内增加一行org.eclipse.swt.bro ...

随机推荐

  1. AWR Report 关键参数详细分析

    WORKLOAD REPOSITORY report for DB Name DB Id Instance Inst num Startup Time Release RAC CALLDB 12510 ...

  2. 客户端的javascript改变了asp.net webform页面控件的值,后台代码中如何获取修改后的值。

    客户端的javascript改变了asp.net webform页面控件的值,后台代码中如何获取修改后的值.     无论是什么的html控件,只要加上了runat="server" ...

  3. Wishbone总线从接口转Xilinx MIG (Spartan 6)

    //*************************************************************************** // Copyright(c)2016, L ...

  4. svn取消文件夹关联的方法(svn取消关联)

    新建个记事本,贴入以下代码,保存后重命名后缀为reg,然后在目标文件夹右键就出现了删除SVN的选项了. 复制代码 代码如下: Windows Registry Editor Version 5.00[ ...

  5. Java笔记8:Hibernate连接Oracle

    1下载hibernate-3.6.0 Final.zip到任意目录,解压缩后得到hibernate目录 2下载slf4j-1.7.13.zip到任意目录,解压缩后得到slf4j-1.7.13 3操作数 ...

  6. 在浏览器中体验 Ubuntu

    近日,Canonical将Ubuntu官网中添加了在线导览的功能,你可以在任何地方使用这个Ubuntu 演示版.Ubuntu背后的公司Canonical为 Linux 推广做了很多努力.无论你有多么不 ...

  7. 教你用 google-drive-ocamlfuse 在 Linux 上挂载 Google Drive

    如果你在找一个方便的方式在 Linux 机器上挂载你的 Google Drive 文件夹, Jack Wallen 将教你怎么使用 google-drive-ocamlfuse 来挂载 Google ...

  8. [转]php中实现事件驱动

    原文: https://blog.csdn.net/yhl27/article/details/8705313 -------------------------------------------- ...

  9. Thinkpad 笔记本 装win7 64 位操作系统热键驱动装不上问题解决!

    Thinkpad 笔记本 装win7 64 位操作系统热键驱动装不上问题解决! 一般牛人的解释如下: 问题终于搞定.是因为需要手工建%PROGRAMFILES%\Lenovo\Hotkey目录.这个写 ...

  10. jenkins+testNG

    1.项目的pom.xml要配置插件,同时指定testng.xml文件的位置.就被这个卡了好久 <properties> <maven-surefire-plugin.version& ...