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=YESchroot_local_user=NO
chroot_list_enable=YESt2t1
chroot_list_enable=NOt1,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)的主要内容,如果未能解决你的问题,请参考以下文章

CenterOs7怎么开启FTP服务?

vsftpd中的userlist_enable和chroot_list_enable配置

linux FTP服务

vsftpd 配置:chroot_local_user与chroot_list_enable详解

VSFTPD服务器配置

Centos 下搭建FTP上传下载服务器