介绍

本章主要介绍在Linux中搭建FTP服务器的过程,需要掌握的要点是配置文件的合理配置。

知识点

  • 在linux中使用的FTP是vsftp
  • FTP可以有三种登入方式分别是:
  1. 匿名登录方式:不需要用户密码
  2. 本地用户登入:使用本地用户和密码登入
  3. 虚拟用户方式:也是使用用户和密码登入,但是该用户不是linux中创建的用户

安装FTP

使用YUM安装

yum -y install vsftpd

文件配置

安装完之后在/etc/vsftpd/路径下会存在三个配置文件。

vsftpd.conf: 主配置文件

ftpusers: 指定哪些用户不能访问FTP服务器,这里的用户包括root在内的一些重要用户。

user_list: 指定的用户是否可以访问ftp服务器,通过vsftpd.conf文件中的userlist_deny的配置来决定配置中的用户是否可以访问,userlist_enable=YES ,userlist_deny=YES ,userlist_file=/etc/vsftpd/user_list 这三个配置允许文件中的用户访问FTP。

查看主配置文件的默认配置

cat /etc/vsftpd/vsftpd.conf |grep -v '^#';

anonymous_enable=YES #允许匿名用户

local_enable=YES #允许使用本地用户账号登陆

write_enable=YES #允许ftp用户写数据

connect_from_port_20=YES #通过20端口传输数据

anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES pam_service_name=vsftpd
tcp_wrappers=YES
chroot_local_user=yes

其它的一些参数说明包括:

ftpd_banner=welcome to ftp service :设置连接服务器后的欢迎信息

idle_session_timeout= :限制远程的客户机连接后,所建立的控制连接,在多长时间没有做任何的操作就会中断(秒)

data_connection_timeout= :设置客户机在进行数据传输时,设置空闲的数据中断时间

accept_timeout= 设置在多长时间后自动建立连接

connect_timeout= 设置数据连接的最大激活时间,多长时间断开,为别人所使用;

max_clients= 指明服务器总的客户并发连接数为200

max_per_ip= 指明每个客户机的最大连接数为3

local_max_rate=(50kbytes/sec)  本地用户最大传输速率限制

anon_max_rate=30000匿名用户的最大传输速率限制

pasv_min_port=端口

pasv-max-prot=端口号 定义最大与最小端口,为0表示任意端口;为客户端连接指明端口;

listen_address=IP地址 设置ftp服务来监听的地址,客户端可以用哪个地址来连接;

listen_port=端口号 设置FTP工作的端口号,默认的为21

local_root=path 无论哪个用户都能登录的用户,定义登录帐号的主目录, 若没有指定,则每一个用户则进入到个人用户主目录;

chroot_local_user=yes/no 是否锁定本地系统帐号用户主目录(所有);锁定后,用户只能访问用户的主目录/home/user;
chroot_list_enable=yes/no 启用不锁定用户在主目录的名单 chroot_list_file=/etc/vsftpd/chroot_list指定列表文件 userlist_enable=YES/NO 是否加载用户列表文件; userlist_deny=YES 表示上面所加载的用户允许登录; userlist_file=/etc/vsftpd/user_list 指定列表文件

创建FTP连接用户

创建用户ftpuser
useradd ftpusr 设置用户只能ftp不能登入
usermod -s /sbin/nologin ftpuser 设置用户密码
passwd ftpusr

用户的默认的家目录在/home下,当前用户就只能访问家目录。

修改用户的家目录位/mnt

usermod -d /mnt ftpuser

启动FTP服务

service vsftpd start

测试

在/mnt目录下创建一个测试文件

touch /mnt/test

连接ftp

解决普通的FTP无法登入问题

linux默认是带安全机制,使用普通的ftp 21端口无法连接到ftp服务器,使用sftp就可以。这个时候需要关闭selinux,修改配置文件需要重启服务器。

vim /etc/sysconfig/selinux

改成selinux=disabled

不重启服务器的方法:

setenforce 

setenforce 1 :设置SELinux 成为enforcing模式
setenforce 0 :设置SELinux 成为permissive模式

查看SELinux状态

/usr/sbin/sestatus -v

总结

还有其他的一些配置方法在这里就暂时不列举,有兴趣的可以去深入研究一下。

备注:

作者:pursuer.chen

博客:http://www.cnblogs.com/chenmh

本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接。

《欢迎交流讨论》

Linux 搭建FTP服务器的更多相关文章

  1. 使用Linux搭建FTP服务器实现文件共享

    使用Linux搭建FTP服务器实现文件共享... ---------------- Linux中的文件共享:FTPVSFTPDVSFTPD虚拟用户 FTP可以用在Linux与Linux 和Window ...

  2. Linux搭建FTP服务器

    一.搭建环境 阿里云 CentOS 7.3 64位 二.FTP协议基础知识 2.1 简介 FTP 是 File Transfer Protocol(文件传输协议)的英文简称,而中文简称为"文 ...

  3. Linux搭建FTP服务器实战

    首先准备一台Linux系统机器(虚拟机也可), 检测出是否安装了vsftpd软件: rpm -qa |grep vsftpd 如果没有输出结果,就是没有安装. 使用命令安装,安装过程中会有提示,直接输 ...

  4. linux搭建FTP服务器并整合Nginx

    操作系统:Centos7 1.1.服务器配置 # 关闭SELINUX,把SELINUX=enforcing改为SELINUX=disabled,reboot重启服务器生效 vim /etc/sysco ...

  5. Linux搭建ftp服务器简单教程及使用方法

    参考文章:https://www.waitig.com/linux-or-centos-install-vsftpd-and-setup-it.html 步骤概括如下: 安装:yum install ...

  6. Linux篇---ftp服务器的搭建

    一.前述 企业中linux搭建ftp服务器还是很实用的,所以本文针对centoos7和centoos6搭建服务器教程做个总结. 二.具体 1.显示如下图则表示已安装 vsftp软件.如果未显示则需要安 ...

  7. linux下FTP服务器搭建教程1

    你买了个主机就像是买了块地皮,搭建FTP就像是盖房子,我在地皮上建房子,然后创建的用户就像是钥匙,我给谁钥匙(权限),谁就可以到我家去玩,去放东西,拿东西. 虽然我们买不起现实的房子,但是我们可以买互 ...

  8. 《Linux下FTP服务器搭建及FTP使用》

    .LOGAndy:mxtd114 <Linux下FTP服务器搭建> 0.root登录 1.安装ftp # yum -y install ftp 2.安装vsftpd # yum -y in ...

  9. 服务器linux centos 7.4 搭建ftp服务器

    此操作是在腾讯云服务器linux centos 7.4 完成搭建ftp服务器 vsftpd 的: 安装 vsftpd $ yum install vsftpd -y 启动 $ service vsft ...

随机推荐

  1. java 读写properties (配置)文件

    Properties属性文件在Java应用程序中是经常可以看得见的,也是特别重要的一类文件.它用来配置应用程序的一些信息,不过这些信息一般都是比较少的数据,没有必要使用数据库文件来保存,而使用一般的文 ...

  2. View动画和属性动画

    在应用中, 动画效果提升用户体验, 主要分为View动画和属性动画. View动画变换场景图片效果, 效果包括平移(translate), 缩放(scale), 旋转(rotate), 透明(alph ...

  3. [转]在Eclipse中使用JUnit4进行单元测试(中级篇)

    我们继续对初级篇中的例子进行分析.初级篇中我们使用Eclipse自动生成了一个测试框架,在这篇文章中,我们来仔细分析一下这个测试框架中的每一个细节,知其然更要知其所以然,才能更加熟练地应用JUnit4 ...

  4. leanote个人版安装

    https://github.com/leanote/leanote/wiki/Leanote-%E4%BA%8C%E8%BF%9B%E5%88%B6%E7%89%88%E8%AF%A6%E7%BB% ...

  5. 历年NOIP水题泛做

    快noip了就乱做一下历年的noip题目咯.. noip2014 飞扬的小鸟 其实这道题并不是很难,但是就有点难搞 听说男神错了一个小时.. 就是$f_{i,j}$表示在第$i$个位置高度为$j$的时 ...

  6. ssh自动输入密码脚本 切换目录脚本

    利用expect的,首先查看expect,命令:which expect #!/usr/bin/expect -f spawn ssh 用户名@ip地址 expect "assword:&q ...

  7. PL/SQL Developer如何连接64位的Oracle图解

    在64位Win7系统上安装64位的Oracle数据库,但是没有对应的64位PL/SQL Developer,此时就不能使用PL/SQL Developer来进行直接连接的,所以要想实现连接还得需要其他 ...

  8. Tomcat7安装配置 for Ubuntu

    一.环境说明: 操作系统:Ubuntu 12.04.2 LTS Tomcat:apache-tomcat-7.0.52 二.下载 下载地址:http://tomcat.apache.org/ 这里下载 ...

  9. CruiseControl.Net <buildpublisher>部署到远程机器报错的解决办法

    CruiseControl.Net ,使用<buildpublisher>将编译后的程序部署到远程机器时,使用以下配置 <buildpublisher> <sourceD ...

  10. JS中数组的操作[转]

    1.数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限, ...