• Linux搭建FTP服务器


    一、Linux搭建FTP服务器

    1.FTP介绍

    FTP服务:实现ftp的一个服务,安装vsftpd软件即可搭建ftp服务器

    FTP协议:文件传输协议(file transfer protocol),在不同的机器之间实现文件传输功能。

    2.安装vsftpd

    2.1 yum安装vsftpd

    # 查看是否有vsftpd应用
    [root@zxy_master ~]# rpm -qi vsftpd
    # yum安装vsftpd
    [root@zxy_master ~]# yum -y install vsftpd
    Loaded plugins: fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
    ......
    
    Installed:
      vsftpd.x86_64 0:3.0.2-29.el7_9
    
    Complete!
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    2.2 rpm查看vsfptd

    由详细信息中提示,vsftpd is a Very Secure FTP daemon.说明vsftpd是一个非常安全的后台守护进程。daemon应该都比较了解了,当使用daemon启动的时候,不在控制台显示,可以通过ps -ef | grep **命令查看

    
    [root@zxy_master ~]# rpm -qi vsftpd
    Name        : vsftpd
    Version     : 3.0.2
    Release     : 29.el7_9
    Architecture: x86_64
    Install Date: Tue 08 Nov 2022 09:24:07 PM CST
    Group       : System Environment/Daemons
    Size        : 361349
    License     : GPLv2 with exceptions
    Signature   : RSA/SHA256, Fri 11 Jun 2021 11:06:15 PM CST, Key ID 24c6a8a7f4a80eb5
    Source RPM  : vsftpd-3.0.2-29.el7_9.src.rpm
    Build Date  : Thu 10 Jun 2021 12:15:50 AM CST
    Build Host  : x86-02.bsys.centos.org
    Relocations : (not relocatable)
    Packager    : CentOS BuildSystem <http://bugs.centos.org>
    Vendor      : CentOS
    URL         : https://security.appspot.com/vsftpd.html
    Summary     : Very Secure Ftp Daemon
    Description :
    vsftpd is a Very Secure FTP daemon. It was written completely from
    scratch.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    3.启动vsftpd

    3.1 修改vsftpd配置文件-被动模式FTP服务器

    [root@zxy_master /]# cd /etc/vsftpd/
    [root@zxy_master vsftpd]# vim vsftpd.conf
    
    #修改下列参数的值:
    #禁止匿名登录FTP服务器。
    anonymous_enable=YES
    #允许本地用户登录FTP服务器。
    local_enable=YES
    #监听IPv4 sockets。
    listen=YES
    
    #表示登录FTP服务器是根据/etc/pam.d/vsftpd文件进行安全认证
    pam_service_name=vsftpd
    
    #当userlist_enable=YES,userlist_deny=NO时,FTP服务器仅允许user_list文件中的用户访问
    userlist_enable=YES
    userlist_deny=NO
    
    #用户登录FTP服务器默认根目录
    #可自行创建并指定目录
    local_root=/var/ftpfiles
    #全部用户被限制在主目录。
    chroot_local_user=YES
    #启用例外用户名单。
    chroot_list_enable=YES
    #当chroot_local_user=YES,chroot_list_enable=YES时,在chroot_list下添加的用户不受限制
    #可自行创建文件:touch chroot_list
    chroot_list_file=/etc/vsftpd/chroot_list
    
    #开启被动模式。
    pasv_enable=YES
    allow_writeable_chroot=YES
    #搭建FTP服务器的公网IP
    pasv_address=?????
    #被动模式下,需要开启被动端口范围,有助于提高访问FTP服务器安全性
    #需要开启50000-50010的端口
    pasv_min_port=50000
    pasv_max_port=50010
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38

    3.2 创建用户

    #创建登录用户
    #vsftpd使用的就是Linux中的用户名和密码,不需要单独创建
    #但是默认情况下,ftp不允许使用root直接登录
    [root@zxy_master ~]# useradd zxyftp
    [root@zxy_master ~]# passwd zxyftp
    Changing password for user ftp.
    New password:
    Retype new password:
    passwd: all authentication tokens updated successfully.
    
    # 创建用户登录目录,并授权,文件路径与vsftpd.conf配置保持一致
    [root@zxy_master /]# cd /var
    [root@zxy_master var]# mkdir ftpfiles
    [root@zxy_master var]# chown -R zxyftp:zxyftp ftpfiles/
    [root@zxy_master var]# chmod o+w ftpfiles/
    
    # 创建不受限制主目录文件,文件路径与vsftpd.conf配置保持一致
    [root@zxy_master /]# cd /etc/vsftpd
    [root@zxy_master vsftpd]# touch chroot_list
    [root@zxy_master vsftpd]# echo zxyftp >> chroot_list
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    3.3 vsftpd启动

    3.3.1 vsftpd启动异常
    # vsftpd启动异常
    [root@zxy_master ~]# service vsfptd start
    Redirecting to /bin/systemctl start vsfptd.service
    Failed to start vsfptd.service: Unit not found.
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    3.3.2 查看vsftpd服务状态
    # 1.使用systemctl list-unit-files --type=service查看
    [root@zxy_master ~]# systemctl list-unit-files --type=service
    ......
    vsftpd.service                                disabled
    vsftpd@.service                               disabled
    ......
    
    # 2.service vsftpd.service status查看状态
    [root@zxy_master ~]# service vsftpd.service status
    Redirecting to /bin/systemctl status vsftpd.service
    ● vsftpd.service - Vsftpd ftp daemon
       Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
       Active: inactive (dead)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    3.3.3 重启vsftpd
    # 重启vsftpd
    [root@zxy_master ~]# service vsftpd.service restart
    Redirecting to /bin/systemctl restart vsftpd.service
    
    # 查看vsftpd状态
    [root@zxy_master ~]# service vsftpd.service status
    Redirecting to /bin/systemctl status vsftpd.service
    ● vsftpd.service - Vsftpd ftp daemon
       Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
       Active: active (running) since Tue 2022-11-08 21:36:51 CST; 3s ago
      Process: 9461 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
     Main PID: 9462 (vsftpd)
        Tasks: 1
       Memory: 692.0K
       CGroup: /system.slice/vsftpd.service
               └─9462 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
    
    Nov 08 21:36:51 zxy_master systemd[1]: Starting Vsftpd ftp daemon...
    Nov 08 21:36:51 zxy_master systemd[1]: Started Vsftpd ftp daemon.
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    3.4 查看vsftpd启动进程

    # 通过ps -ef | grep ,可以查看应用后台启动进程
    [root@zxy_master ~]# ps -ef | grep vsftpd
    root      9462     1  0 21:36 ?        00:00:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
    root      9610 30599  0 21:37 pts/0    00:00:00 grep --color=auto vsftpd
    
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3.5 查看vsfpt应用端口

    # 9462为vsftpd进程ID
    [root@zxy_master ~]# netstat -nltp | grep 9462
    tcp6       0      0 :::21                   :::*                    LISTEN      9462/vsftpd
    
    • 1
    • 2
    • 3

    4.ftp

    4.1 安装ftp、lftp

    [root@zxy_master ~]# yum -y install ftp lftp
    Loaded plugins: fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
    Resolving Dependencies
    --> Running transaction check
    ---> Package ftp.x86_64 0:0.17-67.el7 will be installed
    ---> Package lftp.x86_64 0:4.4.8-12.el7_8.1 will be installed
    --> Finished Dependency Resolution
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    4.2 lftp连接ftp

    [root@zxy_master ftpfiles]# lftp zxyftp@ip
    Password:
    lftp zxyftp@ip:~> ls
    lftp zxyftp@ip:~> pwd
    ftp://zxyftp@ip/%2Fvar/ftpfiles
    lftp zxyftp@ip:~>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    4.3 浏览器连接ftp

    使用ftp://ip:port可以通过QQ浏览器打开,用户名和密码是ftp的用户名和密码。也就是2.2 创建用户的时候创建的用户名。

    在这里插入图片描述

    输入密码后,即可查看该ftp服务器下的文件。

    在这里插入图片描述

    二、FTP服务器vsftpd配置项-黑白名单(userlist_enable、userlist_deny)

      通过修改vsftpd配置文件vsftpd.conf,实现ftp服务器登录黑白名单,主要涉及两个配置userlist_enable=YES、userlist_deny=NO,两个文件ftpusers、user_list

    1.创建测试用户

      创建三个测试用户,通过修改两个配置项,查看三个用户的登录状态

    # 创建测试用户一
    [root@zxy_master vsftpd]# useradd t1
    [root@zxy_master vsftpd]# passwd t1
    Changing password for user t1.
    New password:
    Retype new password:
    passwd: all authentication tokens updated successfully.
    # 创建测试用户二
    [root@zxy_master vsftpd]# useradd t2
    [root@zxy_master vsftpd]# passwd t2
    Changing password for user t2.
    New password:
    Retype new password:
    passwd: all authentication tokens updated successfully.
    # 创建测试用户三
    [root@zxy_master vsftpd]# useradd t3
    [root@zxy_master vsftpd]# passwd t3
    Changing password for user t3.
    New password:
    Retype new password:
    passwd: all authentication tokens updated successfully.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    2.账户文件分配

      上一步中已经创建了三个用户,现将用户t1追加到ftpusers文件用户t2追加到user_list文件用户t3不放在两个文件中。

    [root@zxy_master vsftpd]# echo t1 >> ftpusers
    [root@zxy_master vsftpd]# echo t2 >> user_list
    
    • 1
    • 2

    3.测试配置项

    3.1 测试一

    userlist_enable=YES

    userlist_deny=YES

    # 1.将两个配置项都改为YES,userlist_enable=YES userlist_deny=YES
    [root@zxy_master vsftpd]# vim vsftpd.conf
    # 2.重启vsftpd服务
    [root@zxy_master vsftpd]# systemctl restart vsftpd.service
    # 3.测试t1,登录失败
    [root@zxy_master vsftpd]# lftp t1@localhost
    Password:
    lftp t1@localhost:~> ls
    ls: Login failed: 530 Login incorrect.
    lftp t1@localhost:~> exit
    # 4.测试t2,登录失败
    [root@zxy_master vsftpd]# lftp t2@localhost
    Password:
    lftp t2@localhost:~> ls
    ls: Login failed: 530 Permission denied.
    lftp t2@localhost:~> exit
    # 5.测试t3,登陆成功
    [root@zxy_master vsftpd]# lftp t3@localhost
    Password:
    lftp t3@localhost:~> ls
    -rw-rw-r--    1 1002     1002            0 Nov 10 01:19 a.txt
    drwxrwxr-x    2 1002     1002         4096 Nov 10 01:19 zxy
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    3.2 测试二

    userlist_enable=YES

    userlist_deny=NO

    # 1.修改两个配置项,userlist_enable=YES userlist_deny=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
    ls: Login failed: 530 Permission denied.
    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 01:19 a.txt
    drwxrwxr-x    2 1002     1002         4096 Nov 10 01:19 zxy
    lftp t2@localhost:/> exit
    # 5.测试t3,登录失败
    [root@zxy_master vsftpd]# lftp t3@localhost
    Password:
    lftp t3@localhost:~> ls
    ls: Login failed: 530 Permission denied.
    lftp t3@localhost:~> exit
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    3.3 测试三

    userlist_enable=NO

    userlist_deny=YES

    # 1.修改两个配置项,userlist_enable=NO userlist_deny=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
    ls: Login failed: 530 Login incorrect.
    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 01:19 a.txt
    drwxrwxr-x    2 1002     1002         4096 Nov 10 01:19 zxy
    lftp t2@localhost:/> exit
    # 5.测试t3,登录成功
    [root@zxy_master vsftpd]# lftp t3@localhost
    Password:
    lftp t3@localhost:~> ls
    -rw-rw-r--    1 1002     1002            0 Nov 10 01:19 a.txt
    drwxrwxr-x    2 1002     1002         4096 Nov 10 01:19 zxy
    lftp t3@localhost:/> exit
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    3.4 测试四

    userlist_enable=NO

    userlist_deny=NO

    # 1.修改两个配置项,userlist_enable=NO userlist_deny=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
    ls: Login failed: 530 Login incorrect.
    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 01:19 a.txt
    drwxrwxr-x    2 1002     1002         4096 Nov 10 01:19 zxy
    lftp t2@localhost:/> exit
    # 5.测试t3,登录成功
    [root@zxy_master vsftpd]# lftp t3@localhost
    Password:
    lftp t3@localhost:~> ls
    -rw-rw-r--    1 1002     1002            0 Nov 10 01:19 a.txt
    drwxrwxr-x    2 1002     1002         4096 Nov 10 01:19 zxy
    lftp t3@localhost:/> exit
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    3.5 测试结果分析

    3.5.1 分析用户

    用户t1存在于ftpusers文件

    用户t2存在于user_list文件

    用户t3不存在这两个文件

    3.5.2 分析结果

    四次测试结果,可得出如下表格:

    当userlist_enable=YES,userlist_deny=YES时,ftpusers和user_list文件中用户均不能访问

    当userlist_enbale=YES,userlist_deny=NO时,仅允许user_list文件中用户访问

    当userlist_enbale=NO时,禁止ftpusers文件中用户访问

    userlist_enable=YESuserlist_enable=NO
    userlist_deny=YESt3t2,t3
    userlist_deny=NOt2t2,t3
    3.5.3 分析结论

    如果当前FTP服务器仅需设置黑名单时,那么修改配置userlist_enable=NO即可

    如果当前FTP服务器仅需设置白名单时,那么修改配置userlist_enable=YES,userlist_deny=NO即可

    如果当前FTP服务器需设置黑白名单时,那么修改配置userlist_enable=YES,userlist_deny=NO即可

    三、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.创建测试用户

      创建两个测试用户,通过修改两个配置项,查看各个用户的登录状态

    # 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.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    2.账号文件分配

      上一步中已经创建了两个用户,现将用户t1追加到chroot_list文件中,而用户t2则按兵不动

    [root@zxy_master vsftpd]# echo t1 >> chroot_list
    
    • 1

      因为我已经设置了黑白名单(userlist_enable=YES userlist_deny=NO),所以需要将用户t1用户t2加入到白名单里。

    [root@zxy_master vsftpd]# echo "t1" >> user_list
    [root@zxy_master vsftpd]# echo "t2" >> user_list
    
    • 1
    • 2

    3.测试配置项

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    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
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    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
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    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
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    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

  • 相关阅读:
    Linux_基础指令(一)
    路由----router
    std::call_once
    springboot 如何解决循环依赖
    GEE打开NASA-USDA增强型SMAP全球土壤水分数据(10KM,2015-2020)
    NCCL后端
    HUST网络攻防实践|6_物联网设备固件安全实验|实验二 基于 MPU 的物联网设备攻击缓解技术
    Java 数组
    冷笑话-1
    C程序的编译过程及生成文件详解
  • 原文地址:https://blog.csdn.net/m0_51197424/article/details/127776095