vsftp 锁定用户目录

2023-05-16

vsftp 安装以后给用户权限和锁定目录;

关闭SELinux:

修改/etc/selinux/config文件中的SELINUX="" 为 disabled ,然后重启。

如果不想重启系统,使用命令setenforce 0

添加用户:

useradd -d /var/www -s /sbin/nologin ftpuser

主要是修改/etc/vsftpd/vsftpd.conf如下:


chroot_local_user=NO

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/vsftpd.chroot_list



vim chroot_list

添加锁定目录用户

Ftpuser

Upload

当然可以修改路径:

usermod –d /www/html   ftpuser


**vsftpd.user_list:该文件里的用户账户在默认情况下也不能访问FTP服务器,仅当vsftpd .conf配置文件里启用userlist_enable=NO选项时才允许访问。

/etc/vsftpd/user_list ,添加上需要阻止的本地用户,一个用户名一行 用被阻止的用户


grep -v "^#" vsftpd.conf 



anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=000

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_file=/var/log/xferlog

xferlog_std_format=YES

chroot_local_user=NO

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

listen=YES

listen_port=21

pasv_address=192.168.10.123

pasv_addr_resolve=yes

pasv_enable=YES

pasv_min_port=5000

pasv_max_port=5008

use_localtime=YES

listen_ipv6=NO

allow_writeable_chroot=YES

pam_service_name=vsftpd

userlist_enable=YES


配置相关来源网络:

登录和对匿名用户的设置

write_enable=YES               //是否对登录用户开启写权限。属全局性设置。默认NO
local_enable=YES               //是否允许本地用户登录FTP服务器。默认为NO
anonymous_enable=YES          //设置是否允许匿名用户登录FTP服务器。默认为YES
ftp_username=ftp                //定义匿名用户的账户名称,默认值为ftp。
no_anon_password=YES             //匿名用户登录时是否询问口令。设置为YES,则不询问。默 
认NO
anon_world_readable_only=YES   //匿名用户是否允许下载可阅读的文档,默认为YES。
   anon_upload_enable=YES      //是否允许匿名用户上传文件。只有在write_enable设置为
YES时,该配置项才有效。而且匿名用户对相应的目录必须有写权限。默认为NO。
anon_mkdir_write_enable=YES //是否允许匿名用户创建目录。只有在write_enable设置为    YES时有效。且匿名用户对上层目录有写入的权限。默认为NO。
anon_other_write_enable=NO    //若设置为YES,则匿名用户会被允许拥有多于
上传和建立目录的权限,还会拥有删除和更名权限。默认值为NO。

2.设置用户登录后所在的目录 
local_root=/var/ftp             
// 设置本地用户登录后所在的目录。默认配置文件中没有设置该项,此时用户登录FTP服务器后,所在的目录为该用户的主目录,对于root用户,则为/root目录。
anon_root=/var/ftp            
//设置匿名用户登录后所在的目录。若未指定,则默认为/var/ftp目录。

 

3.控制用户是否允许切换到上级目录 
       在默认配置下,用户可以使用“cd..”命名切换到上级目录。比如,若用户登录后所在的目录为/var/ftp,则在“ftp>”命令行 下,执行“cd..”命令后,用户将切换到其上级目录/var,若继续执行该命令,则可进入Linux系统的根目录,从而可以对整个Linux的文件系统 进行操作。

若设置了write_enable=YES,则用户还可对根目录下的文件进行改写操作,会给系统带来极大的安全隐患,因此,必须防止用户切换到Linux的根目录,相关的配置项如下:
chroot_list_enable=YES                    
// 设置是否启用chroot_list_file配置项指定的用户列表文件。设置为YES则除了列在j/etc/vsftpd/chroot_list文件中的的帐号外,所有登录的用户都可以进入ftp根目录之外的目录。默认NO
chroot_list_file=/etc/vsftpd/chroot_list         
// 用于指定用户列表文件,该文件用于控制哪些用户可以切换到FTP站点根目录的上级目录。
chroot_local_user=YES                    
// 用于指定用户列表文件中的用户,是否允许切换到上级目录。默认NO
注意:要对本地用户查看效果,需先设置local_root=/var/ftp

具体情况有以下几种:
1)当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd/chroot_list文件中列出的用户,可以切换到上级目录;未在文件中列出的用户,不能切换到站点根目录的上级目录。
2)当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd/chroot_list文件中列出的用户,不能切换到站点根目录的上级目录;未在文件中列出的用户,可以切换到上级目录。
3)当chroot_list_enable=NO,chroot_local_user=YES时,所有用户均不能切换到上级目录。
4)当chroot_list_enable=NO,chroot_local_user=NO时,所有用户均可以切换到上级目录。
5)当用户不允许切换到上级目录时,登录后FTP站点的根目录“/”是该FTP账户的主目录,即文件的系统的/var/ftp目录。

 

4.设置访问控制 
(1)设置允许或不允许访问的主机(见TBP14)
tcp_wrappers=YES用来设置vsftpd服务器是否与tcp wrapper相结合,进行主机的访问控制。默认设置为YES,vsftpd服务器会检查/etc/hosts.allow和/etc /hosts.deny中的设置,以决定请求连接的主机是否允许访问该FTP服务器。这两个文件可以起到简易的防火墙功能。
比如,若要仅允许192.168.168.1~192.168.168.254的用户,可以访问连接vsftpd服务器,则可在/etc/hosts.allow文件中添加以下内容:
vsftpd:192.168.168.0/255.255.255.0 :allow
all:all:deny

(2)设置允许或不允许访问的用户
对用户的访问控制由/etc/vsftpd/user_list和/etc/vsftpd/ftpusers文件来控制实现。相关配置命令如下:
userlist_enable=YES     
// 决定/etc/vsftpd/user_list文件是否启用生效。YES则生效,NO不生效。
userlist_deny=YES       
// 决定/etc/vsftpd/user_list文件中的用户是允许访问还是不允许访问。若设置为YES,则/etc/vsftpd/user_list 文件中的用户将不允许访问FTP服务器;若设置为NO,则只有vsftpd.user_list文件中的用户,才能访问FTP服务器。

 

5.设置访问速度 
anon_max_rate=0       
//设置匿名用户所能使用的最大传输速度,单位为b/s。若设置为0,则不受速度限制,此为默认值。
local_max_rate=0       
// 设置本地用户所能使用的最大传输速度。默认为0,不受限制。

 

6.定义用户配置文件 
在vsftpd服务器中,不同用户还可使用不同的配置,这要通过用户配置文件来实现。
user_config_dir=/etc/vsftpd/userconf //用于设置用户配置文件所在的目录。
设置了该配置项后,当用户登录FTP服务器时,系统就会到/etc/vsftpd/userconf目录下读取与当前用户名相同的文件,并根据文件中的配 置命令,对当前用户进行更进一步的配置。比如,利用用户配置文件,可实现对不同用户进行访问的速度进行控制,在各用户配置文件中,定义 local_max_rate配置,以决定该用户允许的访问速度。

 

7.与连接相关的设置 
listen=YES        
//设置vsftpd服务器是否以standalone模式运行。以standalone模式运行是一种较好的方式,此时listen必须设置为YES, 此为默认值,建议不要更改。很多与服务器运行相关的配置命令,需要此运行模式才有效。若设置为NO,则vsftpd不是以独立的服务运行,要受 xinetd服务的管理控制,功能上会受限制。

max_clients=0
//设置vsftpd允许的最大连接数,默认为0,表示不受限制。若设置为150时,则同时允许有150个连接,超出的将拒绝建立连接。只有在以standalone模式运行时才有效。

max_per_ip=0
// 设置每个IP地址允许与FTP服务器同时建立连接的数目。默认为0,不受限制。通常可对此配置进行设置,防止同一个用户建立太多的连接。只有在以standalone模式运行时才有效。

listen_address=IP地址        
//设置在指定的IP地址上侦听用户的FTP请求。若不设置,则对服务器所绑定的所有IP地址进行侦听。只有在以standalone模式运行时才有效。 对于只绑定了一个IP地址的服务器,不需要配置该项,默认情况下,配置文件中没有该配置项。若服务器同时绑定了多个IP地址,则应通过该配置项,指定在哪 个IP地址上提供FTP服务,即指定FTP服务器所使用的IP地址。
注意:设置此值前后,可以通过netstat -tnl对比端口的监听情况

accept_timeout=60            
//设置建立被动(PASV)数据连接的超时时间,单位为秒,默认值为60。
connect_timeout=60    
// PORT方式下建立数据连接的超时时间,单位为秒。
data_connection_timeout=300   
//设置建立FTP数据连接的超时时间,默认为300秒。

idle_session_timeout=600      
//设置多长时间不对FTP服务器进行任何操作,则断开该FTP连接,单位为秒,默认为600秒。即设置发呆的逾时时间,在这个时间内,若没有数据传送或指令的输入,则会强行断开连接。
pam_service_name=vsftpd     
//设置在PAM所使用的名称,默认值为vsftpd。

setproctitle_enable=NO|YES   
//设置每个与FTP服务器的连接,是否以不同的进程表现出来,默认值为NO,此时只有一个名为vsftpd的进程。若设置为YES,则每个连接都会有一个vsftpd进程,使用“ps -ef|grep ftp”命令可查看到详细的FTP连接信息。安全起见,建议关闭。


 PS:有时候不能上传文件,查看锁定目录权限和allow_writeable_chroot=YES 还可以查看下

getsebool -a|grep ftp

输入setsebool -P ftpd_full_access=on打开权限即可:

getsebool -a|grep ftp查看:

getsebool -a|grep ftp

ftpd_anon_write --> off

ftpd_connect_all_unreserved --> off

ftpd_connect_db --> off

ftpd_full_access --> on

ftpd_use_cifs --> off

ftpd_use_fusefs --> off

ftpd_use_nfs --> off

ftpd_use_passive_mode --> off

httpd_can_connect_ftp --> off

httpd_enable_ftp_server --> off

tftp_anon_write --> off

tftp_home_dir --> off


vsftp用户锁定目录折腾好久,只对自己做一个小笔记而已。


转载于:https://blog.51cto.com/xpu2001/2070591

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vsftp 锁定用户目录 的相关文章

  • java产生随机数的三种方式

    public class Test public static void main String args Random类 创建随机数对象有2种 一种是添加参数 也叫种子 这种方式创建出来的数 刷新后不会改变 相当于常量了 主要方法 nex
  • gcc 编译两个so其中soA依赖soB

    有两个so xff0c 其中soB中调用soA xff1b 那么我们打包soB的时候连接soA xff1b 在打包test程序的时候连接soB 此时soB会自动查找依赖的soA xff1b 如下测试 在编译之前指定环境变量 xff1a ex
  • Vue 循环 [Vue warn]: Avoid using non-primitive value as key

    页面中不添加 xff1a key 索引的时候 xff0c 会不停的提示虚线 xff0c 但不影响使用 后来加了一个索引 xff0c 加成了 key 61 34 content 34 从后台取出来的contents是一个list xff0c
  • 博客系统 01 登录退出

    一 工程搭建 使用的是IDEA xff08 1 xff09 新建个动态web工程 xff08 Blog xff09 xff08 2 xff09 导入jar包 xff08 SSH jar包 xff09 xff08 3 xff09 导入配置文件
  • 蓝桥杯2017国赛JAVAB组 树形显示 题解

    标题 xff1a 树形显示 对于分类结构可以用树形来形象地表示 比如 xff1a 文件系统就是典型的例子 树中的结点具有父子关系 我们在显示的时候 xff0c 把子项向右缩进 xff08 用空格 xff0c 不是tab xff09 xff0
  • 读《【解密】京东B2B业务架构演变》有感

    京东的B2B业务目前来说发展比较好 xff0c 它的定位是让各类型的企业都可以在京东的 B 平台上进行采购 建立采购关系 京东 B2B 的用户群体主要分为 2 类 xff0c 一类是大 B 用户 另一类是小 B 用户 比如联通 移动公司跟京
  • python中线程、进程和协程的区别

    进程是资源分配的单位线程是操作系统调度的单位协程 xff0c 又称微线程 xff0c 纤程 xff0c 协程的切换只是单纯的操作CPU的上下文 xff0c 资源很小 xff0c 效率高进程切换需要的资源很最大 xff0c 效率很低一个程序至
  • linux下常用alias

    alias xx 61 39 39 其中 61 两边不要有空格

随机推荐

  • C#常用控件(2)

    1 Botton 控件 按钮用图片应该设置内阁为Image xff0c 而不能设置Background为Image xff0c 如果只设置背景 xff0c 按钮鼠标经过样式还在 XAML写法 C 写法 2 Combobox 控件 下拉框控件
  • Django 路由层 虚拟环境下建项目

    路由匹配规律 第一个参数是正则表达式 xff0c 匹配规则按照从上往下一次匹配 xff0c 匹配到一个之后立即匹配 xff0c 直接执行对应的视图函数 urlpatterns 61 url r 39 admin 39 admin site
  • 磁盘显示设备未就绪,要怎么找到资料

    设备未就绪说明这个盘的文件系统结构损坏了 在平时如果数据不重要 xff0c 那么可以直接格式化就能用了 但是有的时候里面的数据很重要 xff0c 那么就必须先恢复出数据再格式化 具体恢复方法可以看正文了解 xff08 不格式化的恢复方法 x
  • centos7下安装vnc更改vnc默认端口号

    应用场景 xff1a 某些情景下 xff0c 需要用的linux的桌面环境 xff0c Ubuntu的桌面性能在linux发行版中算是数一数二的 xff0c 如果不熟悉Debian系统 xff0c Centos RHEL系列也行 xff1b
  • STM32-USB学习笔记(一) USB基础

    USB基础知识扫盲 前言 本文将从USB的 插入检测 身份识别 数据传输三个方面对USB通讯整个过程扫盲 xff0c 其中有些知识点的详细信息会放在文章最下面的附录中供查看 xff0c 从而保证文章的整体简洁 在进入主题之前 xff0c 首
  • VNC连接linux下vmware虚拟机win-server的分辨率设置

    最近用dell的r610装了rhel搞了几个虚拟机玩 xff0c 系统装的是2k3 xff0c 发现用3389连虚拟机的时候 xff0c 分辨率是跟本地一致的1280 1024 xff0c 用vnc连就是1024 768 xff0c 觉得奇
  • 基于maven maven-replacer-plugin 插件对JS,CSS统一加版本号

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 基于maven对JS xff0c CSS统一加版本号 在写WEB应用的时候 xff0c 每次对JS CSS文件做的修改 xff0c 对于用户来说 xff0c 都很郁闷 xf
  • 【树莓派】树莓派上刷android系统

    1 首先将下载的 andrpi3 20160626 img bz2 文件解压 xff0c 可以获得一个 IMG光盘映像文件 xff08 7G多 xff09 xff1b 2 准备1张16G TF卡 xff0c 插入电脑 xff0c 然后运行W
  • 如何应对“需求不确定型项目”?

    问题描写叙述 xff1a 需求不确定 老板直接和客户谈需求 xff0c 项目经理不能或不方便參与 xff0c 打下手 这类项目如何办 xff1f 要深层次了解客户的想法 xff0c 各种利益 xff0c 地盘等 xff0c 这非常难做得到吧
  • 利用CH341A编程器刷新BIOS,恢复BIOS,妈妈再也不用担心BIOS刷坏了

    前几天 xff0c 修电脑主析就捣鼓刷BIOS xff0c 结果刷完黑屏开不了机 xff0c 立刻意识到完了 xff0c BIOS刷错了 就从网上查资料 xff0c 各种方法试了个遍 xff0c 什么用处都没有 终于功夫不负有心人 xff0
  • STM32-串口通信(串口的接收和发送)

    文章目录 STM32的串口通信一 STM32里的串口通信二 串口的发送和接收串口发送串口接收 三 串口在STM32中的配置四 串口接收的两种实现方式1 需要更改的地方2 查询RXNE标志位3 使用中断 总结 STM32的串口通信 本文在于记
  • 技术干货|深入理解flannel

    根据官网的描述 xff0c flannel是一个专为kubernetes定制的三层网络解决方案 xff0c 主要用于解决容器的跨主机通信问题 1 概况 首先 xff0c flannel利用Kubernetes API或者etcd用于存储整个
  • Windows操作系统产品名与内部版本号的对应

    虽然Windows的命名取决于很多因素 xff0c 形式各不相同 xff0c 但是其内部版本号却是一脉相承的 xff0c 从最初的Windows 1 0到之后的Windows 2 0 Windows 3 0 xff0c 再到Windows
  • webpack + jquery + bootstrap 环境配置

    nodejs环境请自行谷歌百度 1 先安装vue cli脚手架 xff1a npm install vue cli g 2 创建项目 xff0c 此处项目名以test为例 xff1a vue init webpack simple test
  • 刚刚,OpenStack 第 19 个版本来了,附28项特性详细解读!

    刚刚 xff0c OpenStack 第 19 个版本来了 xff0c 附28项特性详细解读 xff01 OpenStack Stein版本引入了新的多云编排功能 xff0c 以及帮助实现边缘计算用例的增强功能 OpenStack由一系列相
  • Linux VNC server 安装配置

    1 安装vnc server root 64 pxe yum install tigervnc server y 2 设置 vnc server 开机启动 root 64 pxe chkconfig vncserver on 3 修改vnc
  • 常用非关系型数据库产品介绍

    1 memcache memcache xff08 键值型数据库 xff09 memcache是把访问的数据存在内存里面 xff0c 外部访问现在内存里面找 xff0c 找不到再从数据库里面找 xff0c 可以减轻数据库的压力 xff0c
  • Webpack 4.X 从入门到精通 - devServer与mode(三)

    上一篇文章里详细介绍了一下插件的用法 xff0c 这一篇文章接着丰富module exports里的属性 如今的前端发展已经非常迅速了 xff0c 伴随而来的是开发模式的转变 现在已经不再是写个静态页面并放在浏览器里打开预览一下了 在实际的
  • 块状元素与内联元素的区别

    css中块状元素是一个重要的知识点 xff0c css下height和width不起作用使我们经常遇到的问题 xff0c 这就需要我们正确区分块状元素和内联元素 块状元素和内联元素的区分很简单 xff0c 我们只需要注意html元素是否排斥
  • vsftp 锁定用户目录

    vsftp 安装以后给用户权限和锁定目录 xff1b 关闭SELinux xff1a 修改 etc selinux config文件中的SELINUX 61 34 34 为 disabled xff0c 然后重启 如果不想重启系统 xff0