vsftpd虚拟用户权限设置

2024-08-24 06:38

本文主要是介绍vsftpd虚拟用户权限设置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

上次总结到,vsftpd如何使用mysql完成用户验证。

原文链接:https://blog.csdn.net/u012999461/article/details/123014589

其中包括三个用户:tom@123,jerry@456,mike@789。这些用户都映射为一个系统虚拟用户,所以一定要有一套机制来分别设置每个用户的权限。

1、在vsftpd.conf主配置文件中添加:

user_config_dir=/etc/vsftpd/vusers_conf

参考man vsftpd.conf可以看到user_config_dir选项的说明,它可以指向一个任意取名的目录,用于存放虚拟用户配置文件。

2、创建虚拟用户的配置目录,及配置文件:

mkdir /etc/vsftpd/vusers_conf && cd /etc/vsftpd/vusers_conf

这些配置文件只需要和用户同名即可。而后,每个文件中都可以单独对这个用户权限进行设置。使用匿名用户的指令即可。比如:

vim -o tom jerry mike ../vsftpd.conf(我是一次编辑了四个文件。三个用户分别设置了最简单的权限,用于测试学习而已。代码如下:)

tom:

anon_upload_enable=YES
anon_mkdir_write_enable=NO
anon_other_write_enable=NO                                                                                                                                                                

jerry:

anon_upload_enable=NO
anon_mkdir_write_enable=YES
anon_other_write_enable=NO

mike:

anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=YES

由于修改了vsftpd.conf主配置文件,需要重载服务:

service vsftpd reload

实测,修改pam相关是不用重载服务的。测试过程如下:

 这个/_ftproot是之前创建的系统虚拟用户的家目录,以后tom,jerry,mike上传的文件都在这里。可以看到目前什么都没有。下面我用另外一台centos7测试,

 使用tom登录ftp,上传fstab文件成功,但不能mkdir,也不能删除fstab文件,符合配置要求。 

因为测试tom的时候,还没用jerry创建目录,所以没有测试rmdir,后来试过也是一样拒绝的。符合配置要求。

  使用jerry登录ftp,上传issue文件失败,创建目录a成功,删除文件或目录失败,符合配置要求。

使用mike登录ftp,上传issue文件失败,创建目录b失败,删除文件fstab成功,删除目录a成功,符合配置要求。证毕。

说明:

我试过,哪怕是属主不是映射的虚拟用户,具备删除权限的用户依然可以在远程执行删除的。只不过,无论是delete还是rmdir,都只能带一个参数,不能一次删除多个对象。

mkdir也是只能删除空目录。而mkdir生成的目录。上面截图也看见了,没有go权限,所以能切换过去,也能上传和删除文件,但无法执行ls(亦即list)操作。可见默认anon_umask=077。所以,一般我就参考local_umask的默认值,设置anon_umask=022。

本文完。 

这篇关于vsftpd虚拟用户权限设置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1101730

相关文章

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)

C++链表的虚拟头节点实现细节及注意事项

《C++链表的虚拟头节点实现细节及注意事项》虚拟头节点是链表操作中极为实用的设计技巧,它通过在链表真实头部前添加一个特殊节点,有效简化边界条件处理,:本文主要介绍C++链表的虚拟头节点实现细节及注... 目录C++链表虚拟头节点(Dummy Head)一、虚拟头节点的本质与核心作用1. 定义2. 核心价值二

mysql查询使用_rowid虚拟列的示例

《mysql查询使用_rowid虚拟列的示例》MySQL中,_rowid是InnoDB虚拟列,用于无主键表的行ID查询,若存在主键或唯一列,则指向其,否则使用隐藏ID(不稳定),推荐使用ROW_NUM... 目录1. 基本查询(适用于没有主键的表)2. 检查表是否支持 _rowid3. 注意事项4. 最佳实

SpringSecurity显示用户账号已被锁定的原因及解决方案

《SpringSecurity显示用户账号已被锁定的原因及解决方案》SpringSecurity中用户账号被锁定问题源于UserDetails接口方法返回值错误,解决方案是修正isAccountNon... 目录SpringSecurity显示用户账号已被锁定的解决方案1.问题出现前的工作2.问题出现原因各

Qt 设置软件版本信息的实现

《Qt设置软件版本信息的实现》本文介绍了Qt项目中设置版本信息的三种常用方法,包括.pro文件和version.rc配置、CMakeLists.txt与version.h.in结合,具有一定的参考... 目录在运行程序期间设置版本信息可以参考VS在 QT 中设置软件版本信息的几种方法方法一:通过 .pro

MySQL 用户创建与授权最佳实践

《MySQL用户创建与授权最佳实践》在MySQL中,用户管理和权限控制是数据库安全的重要组成部分,下面详细介绍如何在MySQL中创建用户并授予适当的权限,感兴趣的朋友跟随小编一起看看吧... 目录mysql 用户创建与授权详解一、MySQL用户管理基础1. 用户账户组成2. 查看现有用户二、创建用户1. 基

PostgreSQL 默认隔离级别的设置

《PostgreSQL默认隔离级别的设置》PostgreSQL的默认事务隔离级别是读已提交,这是其事务处理系统的基础行为模式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录一 默认隔离级别概述1.1 默认设置1.2 各版本一致性二 读已提交的特性2.1 行为特征2.2

一文详解MySQL如何设置自动备份任务

《一文详解MySQL如何设置自动备份任务》设置自动备份任务可以确保你的数据库定期备份,防止数据丢失,下面我们就来详细介绍一下如何使用Bash脚本和Cron任务在Linux系统上设置MySQL数据库的自... 目录1. 编写备份脚本1.1 创建并编辑备份脚本1.2 给予脚本执行权限2. 设置 Cron 任务2

mtu设置多少网速最快? 路由器MTU设置最佳网速的技巧

《mtu设置多少网速最快?路由器MTU设置最佳网速的技巧》mtu设置多少网速最快?想要通过设置路由器mtu获得最佳网速,该怎么设置呢?下面我们就来看看路由器MTU设置最佳网速的技巧... 答:1500 MTU值指的是在网络传输中数据包的最大值,合理的设置MTU 值可以让网络更快!mtu设置可以优化不同的网

MySQL 设置AUTO_INCREMENT 无效的问题解决

《MySQL设置AUTO_INCREMENT无效的问题解决》本文主要介绍了MySQL设置AUTO_INCREMENT无效的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录快速设置mysql的auto_increment参数一、修改 AUTO_INCREMENT 的值。