转载自:http://suifengpiaoshi.diandian.com/post/2012-05-05/17955899

搭建ftp

包括搭建ftp服务器和ftp客户端

本文以debian上搭建vsftp为例,展示如何允许一个本地用户名用ftp客户端登录。
因为匿名用户登录的方式比较简单,就不讨论了。注意conf文件的配置就好了。

下面开始:

一、建立ftp服务器

先来段引用:

华丽的分割线
*************************************************************************

安装vsftp

apt-get install vsftpd

配置/etc/vsftpd.conf

# 服务器以standalong模式运行,这样可以进行下面的控制
listen=YES
# 接受匿名用户
anonymous_enable=YES
# 匿名用户login时不询问口令
no_anon_password=YES
# 接受本地用户
local_enable=YES
# 可以上传(全局控制).若想要匿名用户也可上传则需要设置anon_upload_enable=YES,
# 若想要匿名用户可以建立目录则需要设置anon_mkdir_write_enable=YES.这里禁止匿
# 名用户上传,所以不设置这两项.
write_enable=YES
# 本地用户上传文件的umask
local_umask=022
# 如果设为YES,匿名登入者会被允许上传目录的权限,当然,匿名使用者必须要有对上
# 层目录的写入权。
anon_upload_enable=YES
# 定义匿名登入的使用者名称。默认值为ftp
ftp_username=ftp
# 如果设为YES,匿名登入者会被允许新增目录,当然,匿名使用者必须要有对上层目录
# 的写入权。
anon_mkdir_write_enable=YES
# 为YES则进入目录时显示此目录下由message_file选项指定的文本文件
# (,默认为.message)的内容
dirmessage_enable=YES
# 本地用户login后所在目录,若没有设置此项,则本地用户login后将在他的home目录
# (/etc/passwd的第六个字段)中.匿名用户的对应选项是anon_root
# local_root=/home
anon_root=/home/ftp/
# 使用上传/下载日志,日志文件默认为/var/log/vsftpd.log,可以通过xferlog_file
# 选项修改
xferlog_enable=YES
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
# 日志使用标准xferlog格式
xferlog_std_format=YES
# You may change the default value for timing out a data connection.
data_connection_timeout=120
# 关闭本地用户chroot()
chroot_local_user=NO
# 设置为yes则下面的控制有效。
# 开启要设置chroot()用户项.
chroot_list_enable=YES
# (default follows)
# 指定要设置chroot()的特定用户文件
chroot_list_file=/etc/vsftpd.chroot_list
# 若设置为YES则记录在userlist_file选项指定文件(默认是/etc/vsftpd.user_list)
# 中的用户无法login,并且将检察下面的userlist_deny选项
userlist_enable=YES
# 若为NO,则仅接受记录在userlist_file选项指定文件(默认是/etc/vsftpd.user_list)
# 中的用户的login请求.若为YES则不接受这些用户的请求.
userlist_deny=NO
# 注意!!!vsftpd还要检察/etc/vsftpd.ftpusers文件,记录在这个文件中的用户将
# 无法login!!
# 匿名用户的传输比率(b/s)
anon_max_rate=512000
# 本地用户的传输比率(b/s)
local_max_rate=1024000
# 可接受的最大client数目
max_clients=100
# 每个ip的最大client数目
max_per_ip=5
# This option should be the name of a directory which is empty.  Also, the
# directory should not be writable by the ftp user. This directory is used
# as a secure chroot() jail at times vsftpd does not require filesystem access.
secure_chroot_dir=/var/run/vsftpd
# This string is the name of the PAM service vsftpd will use.
pam_service_name=vsftpd

tcp_wrappers=YES

# This option specifies the location of the RSA certificate to use for SSL
# encrypted connections.
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
# 每一个联机,都能以独立的process 来呈现.
setproctitle_enable=YES
# 若是启动,所有匿名上传数据的拥有者将被更换为chown_username当中所设定的使用
# 者。这样的选项对于安全及管理,是很有用的。
chown_uploads=YES
# 这里可以定义当匿名登入者上传档案时,该档案的拥有者将被置换的使用者名称。预
# 设值为root。
chown_username=root

下面继续配置其他相关

增加用户名一堆(都属于ftpuser组的)

groupadd ftpuser
mkdir /home/john/
useradd -g ftpuser john
passwd john

补充/etc/passwd 中缺漏的/bin/bash

比如

john:x:1001:1001::/home/john:

增加为

john:x:1001:1001::/home/john:/bin/bash

否则很可能shell无法解析命令。

更改文件所有者以及权限

chown -v -R john:ftpuser /home/john/
chmod -v -R 700 /home/john/

给ftpuser组所有用户共享一个文件夹,做一个连接

ln -v -s /home/ftpuser/ /home/john/ftpuser

在每个用户的文件夹中设置.message做欢迎界面

编辑/etc/vsftpd.user_list 填写所有可以ftp的用户,包括匿名anonymous

编辑/etc/vsftpd.chroot_list 填写不准进入上层目录的用户名

给/home/ftp/中允许匿名写的目录修改权限。

chmod -v 777 /home/ftp/temp/

做两个定时工作 crontab -e 在里面写

0,10,20,30,40,50 * * * * chmod 555 /home/ftp/incoming/*
# 每10分钟修改一次/home/ftp/incoming/ 中的权限
0 4 * * 1 rm -rf /home/ftp/incoming/temp/*
# 每星期一凌晨4点清空/home/ftp/incoming/temp/文件夹
0 5 10 * * /sbin/reboot
# 每个月10日凌晨5点重新启动电脑

重启vsftp

/etc/init.d/vsftpd restart

好了,ftp服务器做好了。

*************************************************************************
华丽的分割线

上面的文字仅仅是为了增长见识,因为按照上面的方式做后,似乎还少了什么?
对了,我一开始就说了是允许一个本地用户(名)用ftp客户端登录。
那么就根据需要,说一些要修改的地方了。

1. 先给出我的vsftp配置文件(/etc/vsftpd.conf)中需要修改的内容:

# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
# 我不允许匿名登录
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
# 允许本地用户通过ftp登录
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
# 允许ftp客户端写操作,即上传文件
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
#local_umask=022
# I need the same group share, so just umask group "others"
# 这步其实是为了方便我自己在debian多用户的环境下,懒得修改组共享的权限。可以不修改。
# umask=007的意思是创建文件时,屏蔽others组用户的所有权限,
# 可以参考《Unix环境高级编程》相关章节的介绍。
local_umask=007

......

# You may restrict local users to their home directories.  See the FAQ for
# the possible risks in this before using chroot_local_user or
# chroot_list_enable below.
#chroot_local_user=YES
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
#chroot_local_user=YES
#chroot_list_enable=YES
# 将ftp客户端限制在其登录起始目录,不允许cd到上层目录,这是出于安全的考虑。
# 我可不希望ftp客户端看到太多的东西。
# 说明一下:chroot()的目的是为了将用户的根目录锁定到某个目录,
# 让用户感觉到自己的顶层目录就是根目录,但其实那只是真正的linux文件系统中的某个子目录罢了。
chroot_local_user=YES
# 下行是表明我不想使用禁止ftp用户列表。
# 该列表(chroot_list_file=/etc/vsftpd.chroot_list)记录了哪些本地用户可以cd到上层目录。
# 我可没那么多闲工夫写这个额外的配置文件,所以索性不实现该列表好了。
chroot_list_enable=NO
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
#

2. 先给出我的vsftp另一个配置文件(/etc/ftpusers)中需要修改的内容:

# /etc/ftpusers: list of users disallowed FTP access. See ftpusers(5).

root
daemon
bin
sys
sync
games
man
lp
mail
news
uucp
nobody
xing
windy

这个文件用于禁止里面的用户使用ftp登录服务器。
从上面可以看到root、xing等重要用户都被禁用了,这样做是为避免高权限的用户使用ftp。
而用于测试ftp客户端登录的foolsmile用户没有在里面,下面马上就会介绍到。

二、使用ftp客户端登录

这里回头说说我搭建ftp的初衷,其实是为了用我的defy手机(android)上传文件到我的电脑(debian)上。
那么测试也在defy上展开:

首先得有ftp客户端工具,我这里使用ES文件浏览器中自带的ftp客户端功能,因为我手机上没有安装“终端”。
输入ip(比如192.168.1.102),输入port(默认21),输入用户名foolsmile,密码******,
点击“登录”。
ok

【转载】debian上快速搭建ftp的更多相关文章

  1. (转载) android快速搭建项目积累

    android快速搭建项目积累 2016-04-05 20:07 519人阅读 评论(0) 收藏 举报  分类: android优化(8)   Rx技术(5)  版权声明:本文为博主原创文章,未经博主 ...

  2. CentOS 6.5下快速搭建ftp服务器[转]

    CentOS 6.5下快速搭建ftp服务器 1.用root 进入系统 2.使用命令 rpm -qa|grep vsftpd 查看系统是否安装了ftp,若安装了vsftp,使用这个命令会在屏幕上显示vs ...

  3. CentOS 6.5下快速搭建ftp服务器

    来源:Linux社区 作者:Linux CentOS 6.5下快速搭建ftp服务器 1.用root 进入系统 2.使用命令 rpm -qa|grep vsftpd 查看系统是否安装了ftp,若安装了v ...

  4. WAMP Server助你在Windows上快速搭建PHP集成环境

    WAMP Server助你在Windows上快速搭建PHP集成环境 原文地址 我想只要爬过几天网的同学都会知道PHP吧,异次元的新版本就是基于PHP的WordPress程序制造出来的,还有国内绝大部分 ...

  5. 在GitLab pages上快速搭建Jekyll博客

    前一段时间将我的Jekyll静态博客从github pages镜像部署到了 zeit.co(现vercel)上了一份,最近偶然发现gitlab pages也不错,百度也会正常抓取,于是动手倒腾,将gi ...

  6. Proftpd快速搭建FTP服务器

    前言 在Linux系统中,FTP服务器软件有很多,都已经成熟,像vsftpd, wu-ftp, Pure-FTPd等.但这些软件安装配置起来都比较麻烦,搭建个人的FTP服务器,还是Proftpd比较简 ...

  7. .net core系列之《sdk和runtime区别及使用CLI在Ubuntu上快速搭建Console,WebApi,MVC三大应用模型》

    一.需要安装的软件 1.虚拟机安装Ubuntu系统(本人用的是vmware-14.1.12和buntu-18.04) 2.Xshell或 Putty(连接ssh服务) 3.FileZilla(ftp上 ...

  8. 快速搭建FTP服务

    Linux下ftp服务可以通过搭建vsftpd服务来实现,以CentOS为例,首先查看系统中是否安装了vsftpd,可以通过执行命令 rpm -qa | grep vsftpd 来查看是否安装相应的包 ...

  9. 快速搭建FTP服务器

    快速搭建一个本地的FTP服务器  如果需要开发FTP文件上传下载功能,那么需要在本机上搭建一个本地FTP服务器,方便调试.第一步:配置IIS Web服务器1.1 控制面板中找到“程序”并打开 1.2 ...

随机推荐

  1. Linux/Unix 怎样找出并删除某一时间点的文件(转)

    在Linux/Unix系统中,我们的应用每天会产生日志文件,每天也会备份应用程序和数据库,日志文件和备份文件长时间积累会占用大量的存储空间,而有些日志和备份文件是不需要长时间保留的,一般保留7天内的文 ...

  2. 转:RTMPDump源代码分析

    0: 主要函数调用分析 rtmpdump 是一个用来处理 RTMP 流媒体的开源工具包,支持 rtmp://, rtmpt://, rtmpe://, rtmpte://, and rtmps://. ...

  3. Adafruit的树莓派教程第五课:使用控制电缆

    Adafruit的树莓派教程第五课:使用控制电缆 时间 2014-05-09 01:11:20 极客范 原文 http://www.geekfan.net/9095/ 主题 Raspberry PiM ...

  4. 实施vertex compression所遇到的各种问题和解决办法

    关于顶点压缩,好处是可以减少带宽,一定程度提高加载速度,可以提高约5-10%的fps,特别是mobile上,简单描述就是: 压缩之前(32字节) position float3 12normal fl ...

  5. AppExchange Partner Keynote

    Kick-off Dreamforce at the AppExchange Partner Keynote and hear from industry experts about the tren ...

  6. linux系统下重启tomcat的shell脚本

    linux系统下重启tomcat的shell脚本: #!/bin/shtomcat_home=/opt/apache-tomcat- #找到tomcat进程的id并kill掉 ps -ef |grep ...

  7. 每日英语:The Secret About Online Ad Traffic: One-Third Is Bogus

    Billions of dollars are flowing into online advertising. But marketers also are confronting an uncom ...

  8. android studio logcat 换行(日志换行)

    起因 今天突然要调试网络数据,调试一大截那个xml数据. 解决思路 一开始去setting哪里看一下logcat 是否有line break,类似的字眼,可惜没有. 我猜如果没有在设置的话,估计就在“ ...

  9. 频域分辨率与DFT,DCT,MDCT理解

    搞了这么久音频算法,有些细节还没有很清楚. 比如DFT和DCT有哪些区别,DFT系数为什么会是对称的,同样帧长的数据,各自的频域分辨率是多少? 今天决定搞清楚这些问题, 首先DFT的系数对称(2N点的 ...

  10. tomcat java.net.BindException: Cannot assign requested address 解决方法

    今天线上TOMCAT启动时遇到了下比较麻烦的问题,错误如下: 21-Apr-2016 15:14:19.077 SEVERE [main] org.apache.catalina.core.Stand ...