linux上搭建ftp

重要 解决如何搭建ftp

        解决用户指定访问其根目录

        解决访问ftp超时连接

        解决ftp主动连接、被动连接的问题

1、安装ftp

   安装ftp前,先把防火墙关闭

#service iptables stop   (挺重要)

安装好后再根据需要的端口 添加到 iptables

  • 直接用yum安装 vsftp
# .执行以下安装命令
yum install -y vsftpd # .设置开机启动服务
chkconfig vsftpd on # .启动服务
service vsftpd start
  • 配置 ftp 配置文件

这里只是简单的介绍几个必须的配置,具体用到的配置自己去配

#默认的配置文件是/etc/vsftpd/vsftpd.conf

vi /etc/vsftpd/vsftpd.cof
# Example config file /etc/vsftpd/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=NO #是否允许匿名登录
#
# Uncomment this to allow local users to log in.
# When SELinux is enforcing check for SE bool ftp_home_dir
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
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
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
# When SELinux is enforcing check for SE bool allow_ftpd_anon_write, allow_ftpd_full_access
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#anon_mkdir_write_enable=YES
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=YES
#PASV_enable=NO
#
# Make sure PORT transfer connections originate from port 20 (ftp-data). #主动登录
connect_from_port_20=YES  #是否允许主动登录、数据传输端口为20(防火墙必须开放端口20)     【解决访问ftp超时连接】
pasv_enable=NO #是否被动登录,关闭被动登录                                【解决ftp主动连接、被动连接的问题】

#被动登录 #开启被动则把上面的 注释,添加下面几个
#connect_from_port_20=NO
#pasv_enable=YES
#pasv_min_port=50000
#pasv_max_port=60000
#
# 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
#
# You may override where the log file goes if you like. The default is shown
# below.
xferlog_file=/var/log/xferlog #日志
#
# If you want, you can have your log file in standard ftpd xferlog format.
# Note that the default log file location is /var/log/xferlog in this case.
xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.
#idle_session_timeout=600
#
# You may change the default value for timing out a data connection.
#data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that on some FTP servers, ASCII support allows a denial of service
# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
# predicted this attack and has always been safe, reporting the size of the
# raw file.
# ASCII mangling is a horrible feature of the protocol.
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# You may fully customise the login banner string:
#ftpd_banner=Welcome to blah FTP service.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd/banned_emails
#
# 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().
# (Warning! chroot'ing can be very dangerous. If using chroot, make sure that
# the user does not have write access to the top level directory within the
# chroot)
chroot_local_user=NO #是否允许 用户访问其它目录 【解决用户指定访问其根目录】
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list #配置访问目录的用户 (在chroot_list 文件配置)
allow_writeable_chroot=YES #(重点 新添) 配置 读写权限
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
#ls_recurse_enable=YES
#
# When "listen" directive is enabled, vsftpd runs in standalone mode and
# listens on IPv4 sockets. This directive cannot be used in conjunction
# with the listen_ipv6 directive.
listen=NO
#
# This directive enables listening on IPv6 sockets. By default, listening
# on the IPv6 "any" address (::) will accept connections from both IPv6
# and IPv4 clients. It is not necessary to listen on *both* IPv4 and IPv6
# sockets. If you want that (perhaps because you want to listen on specific
# addresses) then you must run two copies of vsftpd with two configuration
# files.
# Make sure, that one of the listen options is commented !!
listen_ipv6=YES pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
local_root=/mnt/ftp_user #配置 用户的目录
  • 添加用户

增加用户user001,指向目录/mnt/ftp,禁止登录SSH权限。

#添加用户,并配置根目录为 /mnt/ftp 即是 用户访问目录
useradd -d /mnt/ftp -s /sbin/nologin user001 #添加密码
passwd user001 # 并且修改 /mnt/ftp 目录的权限
chmod -R 755 /mnt/ftp #改变文件拥有者和群组 (看文件的拥有着,不是user001就需要)
chown user00l:user001 /mnt/ftp
  • 编辑/etc/vsftpd/chroot_list目录,把用户名添加上去即可
vi /etc/vsftpd/chroot_list

#添加  user001即可
user001

到目前为至,已经完成了,重启服务就可以登录测试了

#service vsftpd restart

最新文章

  1. JS 原型链
  2. 转载:谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词
  3. 学习git与github的二三事 (一)
  4. 绕过校园网的共享限制 win10搭建VPN服务器实现--从入门到放弃
  5. 在命令行中通过adb shell am broadcast发送广播通知
  6. JS中数组Array的用法
  7. 揪出Android流氓软件
  8. linq简介
  9. Spring Injection with @Resource, @Autowired and @Inject
  10. Kubuntu(14.04)共享wifi(热点)
  11. 在TextView使用部分颜色文字
  12. linux使用ps1设置命令行提示符
  13. Classical Inheritance in JavaScript
  14. POJ 2778 DNA Sequence(AC自动机+矩阵快速幂)
  15. ddt源码修改:HtmlTestRunner报告依据接口名显示用例名字
  16. 2018年Fintech金融科技关键词和入行互金从业必懂知识
  17. Linux 标准目录结构 FHS
  18. 安装IIS
  19. OO第二次课程总结分析
  20. javascript 易错知识点合集

热门文章

  1. bzoj2879(动态加边费用流)
  2. webService之helloword(java)rs
  3. 线段树区间覆盖 蛤玮打扫教室(zzuli 1877)
  4. android 增量更新原理
  5. python标准库及其它应用
  6. 求n得阶乘得最后一位非零数字
  7. PCI总线目标接口状态机设计
  8. CentOS 7.2通过yum安装MairaDB 10.1
  9. 用一个应用场景理解ASP.NET Core Identity是什么?
  10. ASP.NET MVC基础知识