linux下搭建ftp文件服务器
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、匿名用户登录
匿名登陆
anonymous_enable=YES表示可以匿名登陆,保存后重新启动vsftp服务systemctl restart vsftpd.service),即可以匿名登陆ftp服务(ftp ipaddr),密码是空,对应目录是/var/ftp.
anonymous_enable=NO,匿名就无法登录。
5、多用户配置
- 首先需要在vsftp.conf添加如下配置
# 设置启用虚拟用户功能
guest_enable=YES
# 制定宿主用户名(我们后续需要为我们的系统增加该用户)
guest_username=ftpuser
# 制定虚拟用户配置文件放置文件夹(需自己建立)
user_config_dir=/etc/vsftpd/vuser_conf
# 允许写
allow_writeable_chroot=YES
- 创建宿主用户
#创建宿主主文件夹
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
- 创建虚拟用户信息文件
vsftp目录下
cd /etc/vsftpd/
创建用户信息文件
touch vuser_passwd
vim vuser_passwd
#编辑如下内容,创建虚拟账户信息,奇数行为用户名,偶数行为密码
ftp-user1
123456
ftp-user2
123456
- 生成虚拟用户数据文件
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文件
- 编辑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
- 为虚拟账户创建访问根目录,要在宿主用户下
目录结构如下图所示
修改文件权限
chmod 777 ftp-user1
chmod 777 ftp-user2
- 创建虚拟用户配置目录
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
- 创建chroot_list
cd /etc/vsftpd
touch chroot_list
vim chroot_list
写入虚拟用户名
ftp-user1
ftp-user2
- 重启VSFTP服务
systemctl restart vsftpd.service
可以在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文件服务器的更多相关文章
- linux 下搭建 ftp
最近为了方便目标板与PC机上LINUX之间的通讯,就在LINUX搭建了FTP,工作不难,写个总结.主要经过以下几个步骤: 1.检查是否安装了vsftpd服务器 可以用rpm -q vsftpd命令来查 ...
- Linux 下搭建ftp服务器 指定用户指定目录及其他操作
搭建 Linux下 rpm -qa |grep vsftpd查看是否安装 没安装yum安装 /etc/vsftpd/目录下有vsftpd.conf配置文件 根据需求 进行配置 是否使用匿名用户以及文 ...
- Linux下搭建ftp服务
Linux下ftp服务可以通过搭建vsftpd服务来实现,以CentOS为例,首先查看系统中是否安装了vsftpd,可以通过执行命令 rpm -qa | grep vsftpd 来查看是否安装相应的包 ...
- Linux下搭建FTP服务器(Ubuntu16.04)
搞了下FTP服务器,基本上能遇到的问题都遇到了-.-! 先说步骤: 1.安装vsftpd软件包 sudo apt-get install vsftpd 2.打开配置文件 vim /etc/vsftpd ...
- Linux下搭建FTP服务器
实习的公司有一台老服务器转作为FTP服务器,老大把这个任务交给了我.这两天边学边卖的捣腾起来,总算搞成.现在记录下来,加深映像,也以便以后查看复习. 服务器安装的是:Red Hat Enterpris ...
- 在linux下搭建ftp服务器【转】
1 安装 vsftpd yum install vsftpd 2 配置 vsftpd 打开 vsftpd 文件: vi /etc/vsftpd/vsftpd.conf 初次修改前建议备份该文件 2.1 ...
- linux下搭建lamp环境以及安装swoole扩展
linux下搭建lamp环境以及安装swoole扩展 一.CentOS 6.5使用yum快速搭建LAMP环境 准备工作:先更新一下yum源 我安装的环境是:apache2.2.15+mysql5 ...
- CentOS6.5下搭建ftp服务器(三种认证模式:匿名用户、本地用户、虚拟用户)
CentOS 6.5下搭建ftp服务器 vsftpd(very secure ftp daemon,非常安全的FTP守护进程)是一款运行在Linux操作系统上的FTP服务程序,不仅完全开源而且免费,此 ...
- win10与Ubantu双系统:Linux下开启FTP服务器与创建无线热点(实现文件共享)
如何在win系统下使用filelizza这个软件搭建FTP服务器,然后建立一个无线局域网,让平板终端连接以后,访问电脑硬盘的文件. 如果是只在win7环境下,一切都很简单,按照上文提供的教程就可以实现 ...
随机推荐
- C#.NET笔试题-高级
1.说说什么是架构模式. 1,分层. 2,分割. 分层是对网站进行横向的切分,那么分割就是对网站进行纵向的切分.将网站按照不同业务分割成小应用,可以有效控制网站的复杂程度. 3,分布式. 在大型网站中 ...
- Tapdata 携手精诚瑞宝,共拓 Real Time DaaS 蓝海市场
2021年10月22日,深圳钛铂数据有限公司「Tapdata」 与精诚瑞宝计算机系统有限公司「精诚瑞宝」战略合作签约仪式在深圳举行,Tapdata 创始人唐建法先生与精诚瑞宝副总经理余灿雄先生签署 ...
- 生成RSA密钥的方法[转载]
openssl genrsa -des3 -out privkey.pem 2048 这个命令会生成一个2048位的密钥,同时有一个des3方法加密的密码,如果你不想要每次都输入密码,可以改成(测试常 ...
- DIY蓝牙hub F1方向盘
介于已经入手了自己的第一套OWS FFB直驱力反馈方向盘,因此决定要自己做一款F1方向盘盘面,来提升一下F1 2020游戏的游戏体验感.整体的技术路线如下: [技术路线] 主控:esp32 软件环境: ...
- webapi <Message>已拒绝为此请求授权。</Message>
webapi <Message>已拒绝为此请求授权.</Message> 原有的调用base.OnAuthorization(actionContext); 换成下面这个 // ...
- 多线程与高并发(一)—— 自顶向下理解Synchronized实现原理
一. 什么是锁? 在多线程中,多个线程同时对某一个资源进行访问,容易出现数据不一致问题,为保证并发安全,通常会采取线程互斥的手段对线程进行访问限制,这个互斥的手段就可以称为锁.锁的本质是状态+指针,当 ...
- 使用Properties集合存储数据,遍历取出Properties集合中的数据和Properties集合中的方法store和load
package com.yang.Test.PropertiesStudy; import java.io.FileWriter; import java.io.IOException; import ...
- get 和 post 的区别
1. get 提交的信息显示在地址栏中 post 提交的信息不显示在地址栏中 2. get 对于敏感数据信息不安全,因为信息显示在地址栏中 post 对于敏感数据安全 3. get 不支持大数据量请求 ...
- scrollTop实例
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...
- 【cartographer ros】十: 延时和误差分析
上一节介绍了在cartographer进行建图和定位(在线和离线). 本节将分析cartographer运行时的误差与延迟,主要是在线定位时的,并尝试优化解决. 目录 1,误差分析 a,硬件精度 b, ...