首页 > 其他分享 >vsftp配置

vsftp配置

时间:2023-04-19 13:35:16浏览次数:37  
标签:ftp enable etc ## 配置 vsftpd vsftp YES

本文使用vsftp来部署ftp服务,要求如下:

1、使用ftp用户登录指定的家目录,该ftp用户禁止本地登录,禁止访问非家目录外其他目录;

2、不同用户登录不同家目录;

具体操作配置如下:

1、安装vsftp的rpm包

# yum install vsftpd.x86_64

2、创建ftp用户

允许登录ftp服务、禁止登录本地、指定家目录

mkdir -p /home/ftp ##先有ftp目录

###创建ftpuser1、指定家目录为/home/ftp/ftpuser1,禁止登录本地;
useradd -d /home/ftp/ftpuser1 -s /sbin/nologin ftpuser1
echo ftpuser1 | passwd --stdin ftpuser1

###创建smbuser1、指定家目录为/home/ftp/smbuser1,禁止登录本地;
useradd -d /home/ftp/smbuser1 -s /sbin/nologin smbuser1
echo smbuser1 | passwd --stdin smbuser1

vsftp配置_家目录

3、修改配置

首先查看默认配置文件的有效行,然后有针对性的修改;

#grep -Ev '^$|#' /etc/vsftpd/vsftpd.conf 

vsftp配置_vsftpd_02

#####目标vsftp配置文件: grep -Ev '^$|#' /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
xferlog_std_format=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
pasv_enable=YES
pasv_min_port=10923
pasv_max_port=10958
use_localtime=YES

需要调整的操作

##禁止匿名用户登录
anonymous_enable=NO    ##把原来的YES改为NO

##打开注释
chroot_list_enable=YES  #打开注释
chroot_list_file=/etc/vsftpd/chroot_list   ##可指定

##打开ipv4监听
listen=YES         ##打开监听

##删除或注释掉无用的配置项
connect_from_port_20=YES  ##删除或注释
listen_ipv6=YES   ##删除或注释

##增加其他附加功能,可不用加 !!!
pasv_enable=YES
pasv_min_port=10923
pasv_max_port=10958
use_localtime=YES

前后比对:

vsftp配置_vsftpd_03

 动作       原配置                       目标配置
#修改 anonymous_enable=YES          anonymous_enable=NO
#原样 local_enable=YES              local_enable=YES
#原样 write_enable=YES              write_enable=YES
#原样 local_umask=022               local_umask=022
#原样 dirmessage_enable=YES         dirmessage_enable=YES
#原样 xferlog_enable=YES            xferlog_enable=YES
#原样 xferlog_std_format=YES        xferlog_std_format=YES
#新增                               chroot_list_enable=YES
#新增                               chroot_list_file=/etc/vsftpd/chroot_list
#修改 listen=YES                    listen=NO
#原样 pam_service_name=vsftpd       pam_service_name=vsftpd
#原样 userlist_enable=YES           userlist_enable=YES
#原样 tcp_wrappers=YES              tcp_wrappers=YES
#删除 listen_ipv6=YES
#删除 connect_from_port_20=YES
#新增                               pasv_enable=YES
#新增                               pasv_min_port=10923
#新增                               pasv_max_port=10958
#新增                               use_localtime=YES

4、ftp用户设置

添加用户到配置中指定的文件,允许以下用户登录ftp。
#cat /etc/vsftpd/chroot_list
ftpuser1
smbuser1

5、保存配置并重启服务

/bin/systemctl restart vsftpd.service
systemctl status vsftpd.service

vsftp配置_vsftp配置_04

6、验证

使用浏览器登录

vsftp配置_家目录_05

vsftp配置_家目录_06

命令行下ftp客户端测试

vsftp配置_vsftpd_07

5、继续配置,解决无法登录问题

问题现象描述:

##添加FTP新用户解释器为/sbin/nologin,无法登陆FTP服务,提示:
530 Login incorrect.
Login failed.

vsftp配置_vsftpd_08

原因:vsftpd默认会检查用户的shell,如果用户的shell在/etc/shells没有记录,则无法登陆ftp

vsftp配置_vsftp配置_09

解决办法:在/etc/shells文件里面添加用户的shell(解释器)

/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/tcsh
/bin/csh
/sbin/nologin   ###添加

补充:/etc/shells文件的作用

1.系统某些服务在运行过程中,回去检查用户使用的shells,而这些shell查询就是借助/etc/shells这个文件。

2.修改该文件不会影响用户登陆服务器主机的权限,该文件提供给解释器给系统的某些服务判断一个用户是否是有效用户,例如创建的ftpuser1用户解释器为/sbin/nologin,本地系统的/etc/shells文件里面没有添加/sbin/nologin,所以我创建的ftpuser1用户登陆不了ftp服务,后面将/sbin/nologin添加进/etc/shells文件,则问题解决。

vsftp配置_vsftpd_10

6、继续配置,解决权限问题

登录提示:500 OOPS: vsftpd: refusing to run with writable root inside chroot()

vsftp配置_vsftpd_11

vsftp配置_vsftpd_12



标签:ftp,enable,etc,##,配置,vsftpd,vsftp,YES
From: https://blog.51cto.com/chier11/6206182

相关文章

  • Java SpringBoot 加载 yml 配置文件中字典项
    将字典数据,配置在yml文件中,通过加载yml将数据加载到Map中SpringBoot中yml配置、引用其它yml中的配置。#在配置文件目录(如:resources)下新建application-xxx必须以application开头的yml文件,多个文件用","号分隔,不能换行项目结构文件application.ymlserver:po......
  • 有关SQL2000的配置的优化
    1.对SQL中实例的内存项的设置     可以通过设置SQL中的一个实例的内存分配,来处理SQL对于内存的使用.例如:如果当前SQL服务器为专用SQL数据服务器,可以将内存设为固定方式(分配足够大的内存空间),可以提高数据服务器的执行效率;    2.对SQL中文件组......
  • [nacos]JAR启动并加载/解析Nacos yml格式的配置文件时,报“java.nio.charset.Malformed
    1问题描述原因1:字符集不匹配nacos中配置文件的字符集为A,应用程序的读取配置文件时使用了字符集B,导致使用字符集B解码文件二进制流时字符解码失败。一般问题出在中文注释上原因2:(yml文件)配置格式有误2解决思路2.1原因1:字符集不匹配时方法[1]删除nacos配置文件中......
  • SpringBoot中配置Swagger2
    首先在pom.xml添加springfox-swagger2和springfox-swagger-ui两个依赖,并且spring-boot-starter-parent的版本不能太高,可以设置为2.1.6.RELEASE<!--https://mvnrepository.com/artifact/io.springfox/springfox-swagger2--><dependency> <groupId>io.springfox</groupId>......
  • 【GIT】学习day03 | 如何生成并配置SSH公钥
    快速笔记:1、注册并激活码云账号2、生成并配置SSH公钥(运行[email protected]检测SSH公钥是否配置成功)3、创建空白的码云仓库4、把本地项目上传到码云对应的空白仓库中双击进入 打开里面复制公钥 添加到gitee上即可 新建仓库步骤 然后创建就完事了,不过一开始......
  • XAPMM上更改了root密码,怎么更新phpMyAdmin的配置文件
    要更新phpMyAdmin的配置文件以反映在XAPMM上更改的root密码,请按照以下步骤操作:1.打开phpMyAdmin的配置文件:在XAPMM中,phpMyAdmin的配置文件通常位于D:\xampp\phpMyAdmin2.在配置文件中,找到以下行:$cfg['Servers'][$i]['user']='root';$cfg['Servers'][$i]['password']......
  • MYSQL2 配置文件
    进入目录:cd/usr/share/mysql复制配置文件:cpmy-huge.cnf /etc/my.cnf查看字符集:showvariableslike‘character%’ 或者:showvariableslike‘char%’ ......
  • 四月学习之LVS shell脚本配置DR模型
    1、DS脚本配置#!/usr/bin/bashVIP=172.16.1.100RS1=172.16.1.5RS2=172.16.1.6PORT=80SCHEDULER=rrDEV=eth1:1case$1instart)#配置虚拟IP地址VIP cat>/etc/sysconfig/network-scripts/ifcfg-${DEV}<<-EOF TYPE=Ethernet BOOTPROTO=none DEFROUTE=y......
  • Redis 一、(简介,redis-linux下载,启动方式,常用配置,应用场景,数据结构和内部编码,字符类型)
    目录Redis一、Redis1、简介2、RedisLinux下载安装3、redis启动方式3、1.简单启动3、2.动态参数启动3、3.配置文件启动5、常用配置6、redis应用场景7、redis通用命令8、数据结构和内部编码9、redis字符串类型Redis一、Redis1、简介#Redis特性1)速度快10wops(每秒10万......
  • idea+maven配置scala环境报错
    (未解决)环境:Java1.7+scala2.10.6配置:创建maven工程,建立如下目录结构:pom.xml<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-in......