linux下搭建ftp文件服务器

一、搭建步骤(以在centos7中搭建为例)

1、首先检查一下系统中是否已经安装了vsftpd软件

# 查看是否安装vsftpd
rpm -q vsftpd
rpm -qa |grep vsftpd

2、采用yum方式安装vsftpd

yum install -y vsftpd

# 查看vsftp的安装目录
whereis vsftpd

3、关闭selinux

vi /etc/sysconfig/selinux
# 将配置SELinux=enforcing改为SELinux=disabled
SELinux=disabled

保存退出并重启服务器

4、关闭防火墙

# 关闭防火墙
systemctl stop firewalld.service # 查看防火墙的状态
systemctl status firewalld.service

5、启动vsftp服务

systemctl start vsftpd.servicce

6、查看服务是否启动成功

netstat -npal|grep vsftpd

7、设置vsftpd开机自启

systemctl enable vsftpd.service

二、vsftpd主要的配置

1、ftpusers 该文件用来指定哪些用户不能访问ftp服务器

2、user_list 该文件用来指定的默认账户在默认情况下也不能访问ftp服务器。

3、修改配置文件

vsftpd.conf vsftpd的主要配置文件,路径:/etc/vsftpd/vsftpd.conf

#不允许匿名访问(不登录默认访问某目录/var/ftp)
anonymous_enable=NO
#允许ascii文件上传和下载
ascii_upload_enable=YES
ascii_download_enable=YES
#将用户限制在为其配置的主目录
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

4、匿名用户登录

匿名登陆

  1. anonymous_enable=YES表示可以匿名登陆,保存后重新启动vsftp服务systemctl restart vsftpd.service),即可以匿名登陆ftp服务(ftp ipaddr),密码是空,对应目录是/var/ftp.

  2. anonymous_enable=NO,匿名就无法登录。

5、多用户配置

  1. 首先需要在vsftp.conf添加如下配置
# 设置启用虚拟用户功能
guest_enable=YES
# 制定宿主用户名(我们后续需要为我们的系统增加该用户)
guest_username=ftpuser
# 制定虚拟用户配置文件放置文件夹(需自己建立)
user_config_dir=/etc/vsftpd/vuser_conf
# 允许写
allow_writeable_chroot=YES
  1. 创建宿主用户
#创建宿主主文件夹
cd /home
mkdir vsftpd
# 创建用户 ftpuser 指定 `/home/vsftpd` 目录
# -s /sbin/nologin ftpuser 表示不允许该用户通过命令行方式登录
useradd -g root -M -d /home/vsftpd -s /sbin/nologin ftpuser
# 设置用户 ftpuser 的密码
passwd ftpuser
# 把 /home/vsftpd 的所有权给ftpuser.root
chown -R ftpuser.root /home/vsftpd
  1. 创建虚拟用户信息文件

vsftp目录下

cd /etc/vsftpd/

创建用户信息文件

touch vuser_passwd
vim vuser_passwd

#编辑如下内容,创建虚拟账户信息,奇数行为用户名,偶数行为密码

ftp-user1
123456
ftp-user2
123456
  1. 生成虚拟用户数据文件
db_load -T -t hash -f /etc/vsftpd/vuser_passwd /etc/vsftpd/vuser_passwd.db
chmod 600 /etc/vsftpd/vuser_passwd.db

执行上述操作后会在当前文件下生成一个vuser_passwd.db文件

  1. 编辑pam认证文件
vim /etc/pam.d/vsftpd

将其他都注释掉,添加下面两行;

注:db=/etc/vsftpd/vuser_passwd 中的vuser_passwd 是你生成的虚拟用户的db文件,这里不要加扩展名。

32位系统:

auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd account
required pam_userdb.so db=/etc/vsftpd/vuser_passwd

64位系统:

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd

查看系统位数:

getconf LONG_BIT

  1. 为虚拟账户创建访问根目录,要在宿主用户下

目录结构如下图所示

修改文件权限

chmod 777 ftp-user1
chmod 777 ftp-user2
  1. 创建虚拟用户配置目录
cd /etc/vsftpd/

创建上述配置文件中配置的虚拟用户文件夹,一定要对应

mkdir vuser_conf
cd vuser_conf

创建虚拟用户配置文件,文件名称要与虚拟用户名称相同

这里我们配置两个虚拟用户就创建两个配置文件

touch ftp-user1 ftp-user2
#编辑两个文件,加入以下信息(注意加粗部分要替换为你虚拟账户要访问的根目录名称)
local_root=/home/vsftpd/ftp-user1
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
  1. 创建chroot_list
cd /etc/vsftpd
touch chroot_list
vim chroot_list

写入虚拟用户名

ftp-user1
ftp-user2

  1. 重启VSFTP服务
systemctl restart vsftpd.service
  1. 可以在windows中访问测试,浏览器中或者使用FileZilla连接,将ip地址换成自己机器的ip地址即可。

    10.1浏览器中访问

10.2windows中访问

10.3文件上传连接工具就自己试一下吧!

三、配置过程中可能出现的问题

1、解决报错 500 OOPS: vsftpd: refusing to run with writable root inside chroot()

添加配置

# 如果启用了限定用户在其主目录下需要添加这个配置。
allow_writeable_chroot=YES

2、登录报错530,日志显示

pam_unix(vsftpd:auth): check pass; user unknown

检查一下/etc/pam.d/vsftpd文件配置,一般是pam认证文件配置错误。

linux下搭建ftp文件服务器的更多相关文章

  1. linux 下搭建 ftp

    最近为了方便目标板与PC机上LINUX之间的通讯,就在LINUX搭建了FTP,工作不难,写个总结.主要经过以下几个步骤: 1.检查是否安装了vsftpd服务器 可以用rpm -q vsftpd命令来查 ...

  2. Linux 下搭建ftp服务器 指定用户指定目录及其他操作

    搭建 Linux下 rpm -qa |grep vsftpd查看是否安装 没安装yum安装 /etc/vsftpd/目录下有vsftpd.conf配置文件 根据需求 进行配置  是否使用匿名用户以及文 ...

  3. Linux下搭建ftp服务

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

  4. Linux下搭建FTP服务器(Ubuntu16.04)

    搞了下FTP服务器,基本上能遇到的问题都遇到了-.-! 先说步骤: 1.安装vsftpd软件包 sudo apt-get install vsftpd 2.打开配置文件 vim /etc/vsftpd ...

  5. Linux下搭建FTP服务器

    实习的公司有一台老服务器转作为FTP服务器,老大把这个任务交给了我.这两天边学边卖的捣腾起来,总算搞成.现在记录下来,加深映像,也以便以后查看复习. 服务器安装的是:Red Hat Enterpris ...

  6. 在linux下搭建ftp服务器【转】

    1 安装 vsftpd yum install vsftpd 2 配置 vsftpd 打开 vsftpd 文件: vi /etc/vsftpd/vsftpd.conf 初次修改前建议备份该文件 2.1 ...

  7. linux下搭建lamp环境以及安装swoole扩展

    linux下搭建lamp环境以及安装swoole扩展   一.CentOS 6.5使用yum快速搭建LAMP环境 准备工作:先更新一下yum源  我安装的环境是:apache2.2.15+mysql5 ...

  8. CentOS6.5下搭建ftp服务器(三种认证模式:匿名用户、本地用户、虚拟用户)

    CentOS 6.5下搭建ftp服务器 vsftpd(very secure ftp daemon,非常安全的FTP守护进程)是一款运行在Linux操作系统上的FTP服务程序,不仅完全开源而且免费,此 ...

  9. win10与Ubantu双系统:Linux下开启FTP服务器与创建无线热点(实现文件共享)

    如何在win系统下使用filelizza这个软件搭建FTP服务器,然后建立一个无线局域网,让平板终端连接以后,访问电脑硬盘的文件. 如果是只在win7环境下,一切都很简单,按照上文提供的教程就可以实现 ...

随机推荐

  1. NC16618 [NOIP2008]排座椅

    NC16618 [NOIP2008]排座椅 题目 题目描述 上课的时候总有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情.不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下 ...

  2. Graph Neural Networks:谱域图卷积

    以下学习内容参考了:1,2, 0.首先回忆CNN,卷积神经网络的结构和特点 处理的数据特征:具有规则的空间结构(Euclidean domains),都可以采用一维或者二维的矩阵描述.(Convolu ...

  3. 2022-7-11 javascript学习 第七组 刘昀航

    ​ JavaScript是什么? 编程语言,脚本语言,依赖于某种容器来运行. JS是运行在浏览器上的,可以帮助我们去控制页面. Vue.js   react.js    jquery.js    an ...

  4. Note -「数论 定理及结论整合」

    数学素养 low,表达可能存在不严谨,见谅.我准备慢慢补上证明? Theorems. 裴蜀定理:关于 \(x, y\) 的线性方程 \(ax + by = c\) 有解,当且仅当 \(\gcd (a, ...

  5. NOI / 2.5基本算法之搜索-6044:鸣人和佐助详解

    总时间限制: 1000ms 内存限制: 65536kB 题目 佐助被大蛇丸诱骗走了,鸣人在多少时间内能追上他呢? 已知一张地图(以二维矩阵的形式表示)以及佐助和鸣人的位置.地图上的每个位置都可以走到, ...

  6. 没错,请求DNS服务器还可以使用UDP协议

    目录 简介 搭建netty客户端 在netty中发送DNS查询请求 DNS消息的处理 总结 简介 之前我们讲到了如何在netty中构建client向DNS服务器进行域名解析请求.使用的是最常见的TCP ...

  7. Pandas简单操作(学习总结)

    Pandas 的主要数据结构是 Series (一维数据)与 DataFrame(二维数据),是一个提供高性能.易于使用的数据结构和数据分析工具. 接下来查看Pandas的基本使用: # 导入模块 i ...

  8. websocket心跳实现

    简介 在实际项目中可能会使用到websocket,在使用过程中可能会存在一种问题就是,当网络异常断开时.或者websocket服务波动时,websocket会断开,导致异常,正常情况下,我们会采用心跳 ...

  9. 自动提交本地git仓库脚本

    #! /bin/bash git_user_name=`git config user.name` git_user_mail=`git config user.email` branch_name= ...

  10. Nginx 集群部署(Keepalived)

    # Nginx集群部署 # 当我们的用户同时访问量达到一定量的时候,一台服务器是不够用的 # 这个时候我们需要解决这个问题肯定是要添加新的服务器去处理用户访问 # 多台服务器处理用户访问就需要我们集群 ...