FTP服务器vsftpd配置项-主目录限制(chroot_local_userchroot_list_enable)
Posted DATA数据猿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FTP服务器vsftpd配置项-主目录限制(chroot_local_userchroot_list_enable)相关的知识,希望对你有一定的参考价值。
FTP服务器vsftpd配置项-主目录限制(chroot_local_user、chroot_list_enable)
通过修改vsftpd配置文件vsftpd.conf
,实现ftp服务器登录时主目录限制,主要涉及三个配置项chroot_local_user=YES、chroot_list_enable=YES、chroot_list_file=/etc/vsftpd/chroot_list·
,一个文件chroot_list
一、创建测试用户
创建两个测试用户,通过修改两个配置项,查看各个用户的登录状态
# 1.创建用户t1
[root@zxy_master vsftpd]# useradd t1
Creating mailbox file: File exists
[root@zxy_master vsftpd]# passwd t1
Changing password for user t1.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
# 2.创建用户t2
[root@zxy_master vsftpd]# useradd t2
Creating mailbox file: File exists
[root@zxy_master vsftpd]# passwd t2
Changing password for user t2.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
二、账号文件分配
上一步中已经创建了两个用户,现将用户t1
追加到chroot_list文件中
,而用户t2
则按兵不动
[root@zxy_master vsftpd]# echo t1 >> chroot_list
因为我已经设置了黑白名单(userlist_enable=YES userlist_deny=NO)
,所以需要将用户t1
和用户t2
加入到白名单里。
[root@zxy_master vsftpd]# echo "t1" >> user_list
[root@zxy_master vsftpd]# echo "t2" >> user_list
三、测试配置项
3.1 测试一
chroot_local_user=YES
chroot_list_enable=YES
# 1.将两个配置项都改为YES,chroot_local_user=YES chroot_list_enable=YES
[root@zxy_master vsftpd]# vim vsftpd.conf
# 2.重启服务
[root@zxy_master vsftpd]# systemctl restart vsftpd.service
# 3.测试t1,不受限制在主目录
[root@zxy_master vsftpd]# lftp t1@localhost
Password:
lftp t1@localhost:~> ls
-rw-rw-r-- 1 1002 1002 0 Nov 10 05:29 a.txt
drwxrwxr-x 2 1002 1002 4096 Nov 10 01:19 zxy
lftp t1@localhost:~> cd /opt/
lftp t1@localhost:/opt> exit
# 4.测试t2,被限制主目录
[root@zxy_master vsftpd]# lftp t2@localhost
Password:
lftp t2@localhost:~> ls
-rw-rw-r-- 1 1002 1002 0 Nov 10 05:29 a.txt
drwxrwxr-x 2 1002 1002 4096 Nov 10 01:19 zxy
lftp t2@localhost:/> cd /opt/
cd: Access failed: 550 Failed to change directory. (/opt)
lftp t2@localhost:/> exit
3.2 测试二
chroot_local_user=YES
chroot_list_enable=NO
# 1.chroot_local_user=YES chroot_list_enable=NO
[root@zxy_master vsftpd]# vim vsftpd.conf
# 2.重启服务
[root@zxy_master vsftpd]# systemctl restart vsftpd.service
# 3.测试用户t1,被限制在主目录
[root@zxy_master vsftpd]# lftp t1@localhost
Password:
lftp t1@localhost:~> ls
-rw-rw-r-- 1 1002 1002 0 Nov 10 05:29 a.txt
drwxrwxr-x 2 1002 1002 4096 Nov 10 01:19 zxy
lftp t1@localhost:/> cd /opt
cd: Access failed: 550 Failed to change directory. (/opt)
lftp t1@localhost:/> exit
# 4.测试用户t2,被限制在主目录
[root@zxy_master vsftpd]# lftp t2@localhost
Password:
lftp t2@localhost:~> ls
-rw-rw-r-- 1 1002 1002 0 Nov 10 05:29 a.txt
drwxrwxr-x 2 1002 1002 4096 Nov 10 01:19 zxy
lftp t2@localhost:/> cd /opt
cd: Access failed: 550 Failed to change directory. (/opt)
lftp t2@localhost:/> exit
3.3 测试三
chroot_local_user=NO
chroot_list_enable=YES
# 1.将两个配置项都改为YES,chroot_local_user=NO chroot_list_enable=YES
[root@zxy_master vsftpd]# vim vsftpd.conf
# 2.重启服务
[root@zxy_master vsftpd]# systemctl restart vsftpd.service
# 3.测试用户t1,被限制在主目录
[root@zxy_master vsftpd]# lftp t1@localhost
Password:
lftp t1@localhost:~> ls
-rw-rw-r-- 1 1002 1002 0 Nov 10 05:29 a.txt
drwxrwxr-x 2 1002 1002 4096 Nov 10 01:19 zxy
lftp t1@localhost:/> cd /opt
cd: Access failed: 550 Failed to change directory. (/opt)
lftp t1@localhost:/> exit
# 4.测试用户t2,不被限制在主目录
[root@zxy_master vsftpd]# lftp t2@localhost
Password:
lftp t2@localhost:~> ls
-rw-rw-r-- 1 1002 1002 0 Nov 10 05:29 a.txt
drwxrwxr-x 2 1002 1002 4096 Nov 10 01:19 zxy
lftp t2@localhost:~> cd /opt/
lftp t2@localhost:/opt> exit
3.4 测试四
chroot_local_user=NO
chroot_list_enable=NO
# 1.将两个配置项都改为YES,chroot_local_user=NO chroot_list_enable=NO
[root@zxy_master vsftpd]# vim vsftpd.conf
# 2.重启服务
[root@zxy_master vsftpd]# systemctl restart vsftpd.service
# 3.测试用户t1,不被限制在主目录
[root@zxy_master vsftpd]# lftp t1@localhost
Password:
lftp t1@localhost:~> ls
-rw-rw-r-- 1 1002 1002 0 Nov 10 05:29 a.txt
drwxrwxr-x 2 1002 1002 4096 Nov 10 01:19 zxy
lftp t1@localhost:~> cd /opt/
lftp t1@localhost:/opt> exit
# 4.测试用户t2,不被限制在主目录
[root@zxy_master vsftpd]# lftp t2@localhost
Password:
lftp t2@localhost:~> ls
-rw-rw-r-- 1 1002 1002 0 Nov 10 05:29 a.txt
drwxrwxr-x 2 1002 1002 4096 Nov 10 01:19 zxy
lftp t2@localhost:~> cd /opt/
lftp t2@localhost:/opt> exit
3.4 测试结果分析
3.4.1 分析用户
用户t1存在于chroot_list文件
用户t2不存在文件
3.4.2 分析结果
四次测试结果,可得出如下表格:
当chroot_local_user=YES,chroot_list_enable=YES时,chroot_list文件中用户不受限制
当chroot_local_user=YES,chroot_list_enable=NO时,均受限制
当chroot_local_user=NO,chroot_list_enable=YES时,chroot_list文件中用户受到限制
当chroot_local_user=NO,chroot_list_enable=NO时,所有用户不受限制
chroot_local_user=YES | chroot_local_user=NO | |
---|---|---|
chroot_list_enable=YES | t2 | t1 |
chroot_list_enable=NO | t1,t2 |
3.4.3 分析结论
如果当前FTP服务器需要指定受限制名单,那么修改配置为chroot_local_user=NO,chroot_list_enable=YES
如果当前FTP服务器需要指定不受限制名单,那么修改配置为chroot_local_user=YES,chroot_list_enable=YES
以上是关于FTP服务器vsftpd配置项-主目录限制(chroot_local_userchroot_list_enable)的主要内容,如果未能解决你的问题,请参考以下文章
vsftpd中的userlist_enable和chroot_list_enable配置