vsftpd配置chroot_local_user与chroot_list_enable详解
很多情况下,我们希望限制ftp用户只能在其主目录下(root dir)下活动,不允许他们跳出主目录之外浏览服务器上的其他目录,这时候我就需要使用到
chroot_local_user
,chroot_list_enable
,chroot_list_file
这三个选项了。以下是对三个配置项的解释:
chroot_local_use
#是否将所有用户限制在主目录,YES为启用 NO禁用.(该项默认值是NO,即在安装vsftpd后不做配置的话,ftp用户是可以向上切换到要目录之外的)chroot_list_enable
#是否启动限制用户的名单 YES为启用 NO禁用(包括注释掉也为禁用)chroot_list_file=/etc/vsftpd/chroot_list
#是否限制在主目录下的用户名单,至于是限制名单还是排除名单,这取决于chroot_local_user
的值。
我们可以这样记忆:
chroot_local_user
总是一个全局性的设定,其为YES时,全部用户被锁定于主目录,其为NO时,全部用户不被锁定于主目录。那么我们势必需要在全局设定下能做出一些“微调”,即,我们总是需要一种“例外机制", 所以当chroot_list_enable=YES
时,表示我们“需要例外”。而”例外“的含义总是有一个上下文的,即,当”全部用户被锁定于主目录 “时(即chroot_local_user=YES
),"例外"就是:不被锁定的用户是哪些;当"全部用户不被锁定于主目录"时(即chroot_local_user=NO
),"例外“就是:要被锁定的用户是哪些。这样解释和记忆两者之间的关系就很清晰了!
- 对于chroot_local_user与chroot_list_enable的组合效果,可以参考下表:
chroot_local_user=YES | chroot_local_user=NO | |
---|---|---|
chroot_list_enable=YES | 1.所有用户都被限制在其主目录下2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,不受限制 | 1.所有用户都不被限制其主目录下2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,受到限制 |
chroot_list_enable=NO | 1.所有用户都被限制在其主目录下2.不使用chroot_list_file指定的用户列表,没有任何“例外”用户 | 1.所有用户都被限制在其主目录下2.不使用chroot_list_file指定的用户列表,没有任何“例外”用户 |
让我们举个例子:
假设有ftp1, ftp2两个ftp用户, 计划让ftp1用户锁定在主目录下,不允许切换到其他目录, 但是允许ftp2用户自由切换目录,则可以分如下两种方式实现:
- 方式一:
chroot_local_user=YES
chroot_list_enable=YES
/etc/vsftpd/chroot_list名单列表为:ftp2
解释:chroot_local_user=YES将所有用户限定在主目录内,chroot_list_enable=YES表示要启用chroot_list_file, 因为chroot_local_user=YES,即全体用户都被“限定在主目录内”,所以总是作为“例外列表”的chroot_list_file这时列出的是那些“不会被限制在主目录下”的用户。
- 方式二:
chroot_local_user=NO
chroot_list_enable=YES
/etc/vsftpd/chroot_list名单列表为:ftp1
解释:chroot_local_user=NO则所有用户不被限定在主目录内,chroot_list_enable=YES表示要启用chroot_list_file, 因为chroot_local_user=NO,即全体用户都“不被限定在主目录内”,所以总是作为“例外列表”的chroot_list_file这时列出的是那些“会被限制在主目录下”的用户。
- 其他情况:
对于chroot_local_user和chroot_list_enable的组合还有这样两种情况:
chroot_local_user=YES
chroot_list_enable=NO
和
chroot_local_user=NO
chroot_list_enable=NO
当chroot_list_enable=NO时,就不再启用chroot_list_file,此时就是单纯的把全部用户限定或不限定在主目录下了!
补充:
- 关于chroot_local_user的设置,通常我们倾向于:全局禁止跳出主目录,使用chroot_list添加例外!即:使用Case 1的设置!
- 匿名用户默认的root是/var/ftp
相关文章
- 无线ldap认证服务器,结合LDAP服务器进行portal认证配置案例
- Linux磁盘管理之LVM快速入门配置
- Ubuntu 22.04 LTS 新系统环境配置[通俗易懂]
- mac下安装和配置mongodb的步骤详解
- Oracle 参数 LOG_ARCHIVE_DUPLEX_DEST 官方解释,作用,如何配置最优化建议
- Mysql 官网帮助: 配置安装步骤详解(mysql官网安装步骤)
- Hibernate Query接口 list方法:返回查询结果的List集合
- Linux虚拟机无缝上网配置指南(linux虚拟机上网配置)
- 实现Redis主从配置:快速可靠!(redis主从配置)
- List头文件助力Linux内核开发(list.hlinux)
- Linux 内核配置:实现极致的自定义性(linux内核配置选项)
- 长度查看Redis List长度:简单有效(redis查看list)
- 如何配置 Redis 集群? 详解 Redis 集群配置方法(redis集群配置)
- 使用Redis在List中存储数据(redis存入list)
- Mysql实现List存储的技巧(mysql存储list)
- RedHat Linux AS 4 配置DHCP
- 以List的形式将数据插入Redis(把list插入redis)
- 实现使用List实现Redis队列(redis队列用list)
- Redis实现高效的List读取(redis读list)
- Redis自带数据结构List(redis自带list)
- IIS7ASP+Access使用环境配置
- win7+apache+php+mysql环境配置操作详解