保姆级讲解 FTP服务器的配置与管理

本来目录很长的 因为感觉不太美观 所以小标题都删掉了 本文介绍了

  1. 本地用户的FTP服务器搭建实例
  2. 匿名用户的FTP服务器搭建实例
  3. 虚拟用户的FTP服务器搭建实例
  4. 企业常见类型搭建实验

配置与管理FTP服务器

  • 配置与管理FTP服务器
    • 一、FTP相关知识
    • 二、项目设计与准备
    • 三、项目实施
    • 四、认识vsftpd的配置文件
    • 五、配置匿名用户FTP服务器
    • 六、配置本地用户FTP服务器
    • 七、配置虚拟用户FTP服务器
    • 八、主被动模式配置
    • 九、企业实战与应用

配置与管理FTP服务器

一、FTP相关知识

一、 FTP工作原理

FTP大大的简化了文件传输的复杂性,它能够使文件通过网络从一台主机传送到另一个主机,却不受其计算机和操作系统类型的限制。无论是PC、服务器、大型机、还是ISO、Linux、Windows。只要双方都支持FTP,就可以方便可靠的传送文件。

二、 FTP具体的工作原理

  1. 客户端向服务器发送请求、同时客户端系统动态的打开一个大于1024的端口等待服务器连接
  2. 若FTP服务器在端口21侦听到该请求、则会在客户端1031端口和服务器的21端口之间建立一个FTP会话连接
  3. 当需要传输数据时、FTP客户端再动态的打开一个大于1024的端口(比如1032端口)连接到服务器的20端口,并再这两个端口之间传输数据。当数据传输完毕,这两个端口会自动关闭。
  4. 数据传输完毕,如果客户端不向服务端发送拆除连接的请求,则继续保持连接
  5. 当FTP客户端向服务端发送拆除连接的请求并确认后、客户端将端口与FTP服务的连接,客户端上动态分配的端口将自动释放。

三、 FTP工作模式

FTP服务有两种工作模式:主动传输模式和被动传输模式

四、 匿名用户

FTP服务不同于WWW它首先要求登录到服务器上,然后再传输文件,这对于很多公开提供软件下载的服务器来说十分不便,于是匿名用户访问就诞生了。使用一个公共的用户anonymoud,让任何用户都可以很方便的从这些服务器上下载软件。

二、项目设计与准备

2台安装好Centos7的计算机、一台作为服务器、一台作为客户端。

主机名称操作系统IP地址角色
FTP服务器端Centos7192.168.10.101FTP服务器端
FTP客户端Centos7192.168.10.102FTP客户端
Windows客户端Windows192.168.10.100FTP客户端

三、项目实施

一、本地yum源
插一句 如果你不会安装软件或者不会搭建本地yum源 可以先看看我写的教程 点我前往 学习配置大概需要3~5分钟

二、IP网卡配置
如果你不会配置网卡的话 可以看看我写的教程 点我前往 学习一下 大概八分钟

(1) 检查yum源是否配置成功

yum makecache // 清除缓存
yum repolist  //查看仓库列表  //

(2) 安装vsftpd服务

[root@ftp-server ~]# yum install -y vsftpd* ftp

(3) 启动vsftpd服务并关闭防火墙

[root@ftp-server ~]# systemctl stop firewalld
[root@ftp-server ~]# systemctl restart vsftpd
[root@ftp-server ~]# setenforce 0

四、认识vsftpd的配置文件

vsftpd服务程序的主配置文件(/etc/vsftpd/vsftpd.conf) 下面的命令可以过滤到没有必要的注释

[root@ftp-server ~]# cat /etc/vsftpd/vsftpd.conf |grep -v "#"
# 下面的是文件种的所有参数
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YESpam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

(1) 主配置文件参数说明

vsftpd服务程序主配置文件种常用的参数及其作用如下表。在后续的实验种将演示重要的参数用法,帮助大家熟悉并掌握。

选项说明
anonymous_enable设置是否允许匿名用户登录服务器
local_enable设置是否允许本地用户登录服务器
write_enable设置是否允许写操作
local_umask设置本地用户创建文件的umask值
anon*_upload_enable*设置是否允许匿名用户上传文件
anon*_mkdir_write_enable*设置是否允许匿名用户建立目录
xferlog_enable是否激活日志功能
chown_uploads修改匿名用户上传文件的所有者
chown_username=whoever启用chown_uploads=YES时,指定为主用户账户,whoever表示你的ftp用户
chroot*_local_user*设置是否将所有用户限制在其主目录
chroot*_list_enable*设置是否启用限制用户的名单
chroot*_list_file*设置是否限制/排除主目录下的用户名单,限制/排除有chrootlocaluser值决定
allow*_writeable_choot*设置chroot目录的写权限

(2) FTP数据库文件说明

/etc/pam.d/vsftpd

vsftpd的PAM配置文件、主要用来加强vsftpd服务的用户认证

(3) FTP用户列表文件说明

/etc/vsftpd/ftpusers

所有位于此文件内的用户都不能访问vsftpd服务。当然为了安全起见,这个文件种默认包括了root、bin和daemon等用户

(4) FTP拒绝访问列表说明

/etc/vsftpd/user_list

这个文件包括的用户可能是备拒绝访问vsftpd服务的,也可能是允许访问的。主要取决于/etc/vsftpd/vsftpd.conf种的userlist_deny参数是设置为yes还是no

  • userlist_deny=NO时,仅允许文件中的用户访问FTP服务器
  • userlist_deny=YES时,反之

(5) FTP默认目录说明

/var/ftp文件夹

该文件夹是vsftpd提供服务的文件集散地,包括一个pub子目录。在默认配置下,所有的目录都只是只读的。

五、配置匿名用户FTP服务器

  1. vsftpd允许用户以3种认证模式登录到FTP服务器上。

    • 匿名用户:任何人都可以直接登录服务器
    • 本地用户:通过本地用户输入密码登录服务器
    • 虚拟用户:本身不存在、是一个虚拟出来的用户、就算黑客破解的用户信息也无法登录服务器
  2. 匿名用户登录的参数说明

    参数作用
    anonymous_enable=YES允许匿名用户访问
    anon_umask=022匿名用户上传文件的umask值
    anon_upload_enable=YES允许匿名用户上传文件
    anon_mkdir_write_enable=YES允许匿名用户创建文件
    anon_other_write_enable=YES允许匿名用户修改目录名称或删除目录
  3. 配置匿名用户登录FTP服务器实例

    题目要求:搭建一台FTP服务器,允许匿名用户上传和下载文件,匿名用户的根目录设置为/var/ftp

    新建测试文件 编辑主配置文件

    [root@ftp-server ~]# touch /var/ftp/pub/sample.tar
    [root@ftp-server ~]# vi /etc/vsftpd/vsftpd.conf
    

    在文件后面编辑如下四行 最前面的是行号

    12 anonymous_enable=YES
    29 anon_upload_enable=YES  # 允许上传文件 如果前面有# 删除最前面的 “#”
    33 anon_mkdir_write_enable=YES  # 允许创建文件
    

    重启FTP服务器

    [root@ftp-server ~]# systemctl restart vsftpd
    [root@ftp-server ~]# systemctl stop firewalld
    

    在windows客户端上输入ftp://192.168.10.101打开pub目录

    Win+R 打开运行 输入ftp://192.168.10.101

    image-20240606160639131

    进入pub目录

    image-20240606161050976

    image-20240606161624945

    新建文件 发现会出错

    出错原因是什么呢?系统本地的权限没有设置

    设置本地系统权限,将权限直接拉满

    [root@ftp-server ~]# chmod 777 /var/ftp/pub  // 给目录所属设置为ftp
    [root@ftp-server ~]# systemctl restart vsftpd  // 重启ftp服务
    

    在Windows客户端再次测试,在pub目录下创建新文件夹

    image-20240606162515641

六、配置本地用户FTP服务器

一、FTP服务器配置要求

公司现在又一台FTP服务器和Web服务器,FTP主要用于维护公司网站内容,包括上传文件、创建目录、更新网页等。公司现在又两个部门负责维护任务。两者分别使用team1和team2账号来管理,仅允许team1和team2登录服务器.

二、要求分析

将FTP服务器和Web服务器在一起时企业经常采用的方法,这样方便维护网站,为了增强安全性,首先需要使用仅允许本地用户访问,并禁用匿名用户登录。其次将team1和team2锁在/web/www/html目录下

三、解决方案

  1. 建立维护网站内容的FTP账号 并 禁止本地登录 为其设置密码
[root@ftp-server ~]# mkdir /web/www/html -p  # 创建team1和team2的所属目录
[root@ftp-server ~]# useradd team1 -d /web/www/html# 禁止登录本地并指定家录
[root@ftp-server ~]# useradd team2 -d  /web/www/html
[root@ftp-server ~]# useradd user1 -d /web/www/html
[root@ftp-server ~]# echo "123" | passwd --stdin user1  # 设置密码
[root@ftp-server ~]# echo "123" | passwd --stdin  team1
[root@ftp-server ~]# echo "123" | passwd --stdin  team2
  1. 配置vsftpd.conf主配置文件增加或修改相应内容

    [root@ftp-server ~]# vim /etc/vsftpd/vsftpd.conf
    12 anonymous_enable=NO # 不允许匿名用户访问
    13 local_root=/web/www/html  # 添加这一行
    102 chroot_list_enable=YES  # 取消注释  激活chroot功能
    104 chroot_list_file=/etc/vsftpd/chroot_list # 取消注释 锁定用户在根目录种的列表文件
    105 allow_writeable_chroot=YES # 启用chroot就一定加入这条:允许chroot限制
    106 write_enable=yes
    
  2. 建立/etc/vsftpd/chroot_list文件、添加team1、team2账号

    [root@ftp-server vsftpd]# vim /etc/vsftpd/chroot_list
    [root@ftp-server vsftpd]# cat chroot_list
    team1
    team2
    
  3. 创建测试文件 并赋予目录权限值

    [root@ftp-server vsftpd]# touch /web/www/html/test.tar
    [root@ftp-server vsftpd]# chmod -R 777 /web/www/html/test.tar
    
  4. 重启ftp服务

    [root@ftp-server vsftpd]# systemctl restart vsftpd
    
  5. 注意

    今天做这个实验的时候 发现了一个特别重要的点

    chroot_list的作用是限制文件内的用户固定在目录种

    • chroot_list=YES的话 仅文件中的用户可以访问所有目录 例如 /etc

    • chroot_list=No的话 除文件中的用户不可以访问所有目录

四、测试

  1. 限制在本地目录的team1

    [root@ftp-server ~]# ftp localhost 21 
    Trying ::1...
    Connected to localhost (::1).
    220 (vsFTPd 3.0.2)
    Name (localhost:root): team1  # 输入登录的用户
    331 Please specify the password.
    Password:  # 输入密码
    230 Login successful.
    Remote system type is UNIX.
    Using binary mode to transfer files.
    ftp> pwd  # 查看当前目录
    257 "/"
    ftp> cd /etc/  # 尝试进入/etc目录
    550 Failed to change directory. # 拒绝
    
  2. 不限制在本地用户的user1

    [root@ftp-server ~]# ftp localhost 21
    Trying ::1...
    Connected to localhost (::1).
    220 (vsFTPd 3.0.2)
    Name (localhost:root): user1  
    331 Please specify the password.
    Password:
    230 Login successful.
    Remote system type is UNIX.
    Using binary mode to transfer files.
    ftp> cd /etc # 尝试进入/etc
    250 Directory successfully changed.  # 成功
    

七、配置虚拟用户FTP服务器

一、要求:

使用虚拟用户user2、user3登录FTP服务器、访问主目录时/var/ftp/vuser,用户只允许查看文件、不允许上传、修改等操作

二、 创建用户数据库

三、创建用户文本文件

# 进入目录
[root@ftp-server ~]# cd /etc/vsftpd/
# 创建文本文件
[root@ftp-server vsftpd]# vim vuer
user2
123
user3
123
# 文本文件的格式为
用户
密码
用户
密码

四、生成数据库

保存虚拟账号及密码的文本文件无法被系统账号直接调用 需要使用db_load命令生成db数据库文件

[root@ftp-server vsftpd]# db_load -T -t hash -f vuer vuer.db

五、配置PAM文件

为了使服务器能够使用数据库问就按,对客户端进行身份验证,需要调用系统的PAM模块。

下面修改vsftpd对应的PAM配置文件/etc/pam.d/vsftpd、将默认配置使用“#”全部注释

[root@ftp-server vsftpd]# vim /etc/pam.d/vsftpd
#%PAM-1.0
#session    optional     pam_keyinit.so    force revoke
#auth       required    pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth       required    pam_shells.so
#auth       include     password-auth
#account    include     password-auth
#session    required     pam_loginuid.so
#session    include     password-auth
auth required pam_userdb.so dn=/etc/vsftpd/vuser
account required pam_userdb.so dn=/etc/vsftpd/vuser

六、编辑主配置文件

[root@ftp-server vsftpd]# vim /etc/vsftpd/vsftpd.conf # 在最后添加下面四行
129 guest_enable=YES
130 guest_username=vuser
131 user_config_dir=/etc/vsftpd/vuser_conf
132 allow_writeable_chroot=YES

七、配置虚拟用户权限

[root@ftp-server vsftpd]# cd /etc/vsftpd
[root@ftp-server vsftpd]# mkdir vuser_conf
[root@ftp-server vsftpd]# cd vuser_conf
[root@ftp-server vuser_conf]# vim user2
local_root=/var/ftp/vuser
[root@ftp-server vuser_conf]# vim user3
local_root=/var/ftp/vuser

八、创建测试文件

[root@ftp-server vuser_conf]# touch /var/ftp/vuser/user2.tar
[root@ftp-server vuser_conf]# touch /var/ftp/vuser/user3.tar

九、重启测试

# 重启服务
[root@ftp-server vuser_conf]# systemctl restart vsftpd# 登录user2
[root@ftp-server vuser_conf]# ftp localhost 21
Trying ::1...
Connected to localhost (::1).
220 (vsFTPd 3.0.2)
Name (localhost:root): user2
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
229 Entering Extended Passive Mode (|||60168|).
150 Here comes the directory listing.
-rw-r--r--    1 0        0               0 Jun 06 18:46 user2.tar
-rw-r--r--    1 0        0               0 Jun 06 18:46 user3.tar# user2其他权限测试
ftp> cd /etc/  # 进入其它目录权限
550 Failed to change directory.  # 失败
ftp> mkdir user2  # 创建文件权限
550 Permission denied. # 失败# 登录user3
[root@ftp-server vuser_conf]# ftp localhost 21
Trying ::1...
Connected to localhost (::1).
220 (vsFTPd 3.0.2)
Name (localhost:root): user3
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
229 Entering Extended Passive Mode (|||28511|).
150 Here comes the directory listing.
-rw-r--r--    1 0        0               0 Jun 06 19:03 user2.tar
-rw-r--r--    1 0        0               0 Jun 06 19:03 user3.tar# user3其他权限测试
ftp> cd /etc/  # 进入其它目录权限
550 Failed to change directory.  # 失败
ftp> mkdir user3  # 创建文件权限
550 Permission denied. # 失败

八、主被动模式配置

(1) 主模式配置

# 开启主动模式
port_enable=YES

(2) 被动模式配置

pasv_enable=YES
# 被动模式最低端口
PASV_min_port=%number%
# 被动模式最高端口
PASV_max_port=%number%#=

九、企业实战与应用

一、 要求

公司计划搭建FTP服务器、为客户提供相关文档下载。对所有互联网用户开放共享目录,允许下载产品信息,禁止上传。公司的合作单位能够**使用FTP服务器进行上传和下载,但不可删除数据,**并且为保证服务器的稳定性,需要进行适当的优化设置。

二、 分析

对不同用户进行不同的权限限制,FTP服务器需要实现用户的审核。为了考虑安全性,关闭实体用户登录。使用虚拟用户验证机制。

三、 项目实施

四、创建用户数据库

  1. 创建用户数据库

    添加两个虚拟用户 ftps为公共用户 vip为客户用户

    [root@ftp-server vuser_conf]# cd /etc/vsftpd/
    [root@ftp-server vsftpd]# vim ftpuser
    ftps
    123
    vip
    123
    
  2. 生成数据库

    [root@ftp-server vsftpd]# db_load -T -t hash -f ftpuser ftpuser.db
    

五、 配置PAM文件

  1. 修改文件

    [root@ftp-server vsftpd]# vim /etc/pam.d/vsftpd
    #%PAM-1.0
    #session    optional     pam_keyinit.so    force revoke
    #auth       required    pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
    #auth       required    pam_shells.so
    #auth       include     password-auth
    #account    include     password-auth
    #session    required     pam_loginuid.so
    #session    include     password-auth
    auth required pam_userdb.so db=/etc/vsftpd/ftpuser  # 换成ftpuser
    account required pam_userdb.so db=/etc/vsftpd/ftpuser  # 换成ftpuser
    

六、 编辑主配置文件

在最后面添加四行

[root@ftp-server vsftpd]# vim /etc/vsftpd/vsftpd.conf
129 guest_enable=YES
130 guest_username=vsftp
131 allow_writeable_chroot=YES
132 user_config_dir=/etc/vsftpd/ftpuser_conf  # 指定虚拟用户的配置文件目录

七、 配置虚拟用户配置文件

[root@ftp-server vsftpd]# mkdir /etc/vsftpd/ftpuser_conf
  1. ftps配置文件

    [root@ftp-server vsftpd]# vim /etc/vsftpd/ftpuser_conf/ftps
    local_root=/var/ftp/public  # 指定根目录
    anon_upload_enable=YES  # 允许下载
    write_enable=NO # 禁止上传创建文件
    
  2. vip配置文件

    [root@ftp-server vsftpd]# vim /etc/vsftpd/ftpuser_conf/vip
    local_root=/var/ftp/public
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
    anon_umask=022
    

八、 创建共享目录和测试文件

[root@ftp-server vsftpd]# mkdir /var/ftp/public
[root@ftp-server vsftpd]# chmod 777 /var/ftp/public
[root@ftp-server vsftpd]# touch /var/ftp/public/test.txt

九、 重启测试

ftps测试

  1. 下载和查看文件测试

    root@ftp-server vsftpd]# systemctl restart vsftpd
    [root@ftp-server vsftpd]# ftp localhost 21
    Trying ::1...
    Connected to localhost (::1).
    220 (vsFTPd 3.0.2)
    Name (localhost:root): ftps
    331 Please specify the password.
    Password:
    230 Login successful.
    Remote system type is UNIX.
    Using binary mode to transfer files.
    ftp> ls
    229 Entering Extended Passive Mode (|||27230|).
    150 Here comes the directory listing.
    -rw-r--r--    1 0        0               0 Jun 06 19:29 test.txt
    226 Directory send OK.
    ftp> get test.txt
    local: test.txt remote: test.txt
    229 Entering Extended Passive Mode (|||57910|).
    150 Opening BINARY mode data connection for test.txt (0 bytes).
    226 Transfer complete.
    
  2. 上传文件测试

    ftp> put test.txt
    local: test.txt remote: test.txt
    229 Entering Extended Passive Mode (|||46731|).
    550 Permission denied.
    
  3. 创建文件测试

    ftp> mkdir toto
    550 Permission denied.
    

vip测试

  1. 下载查看文件测试

    [root@ftp-server vsftpd]# ftp localhost 21
    Trying ::1...
    Connected to localhost (::1).
    220 (vsFTPd 3.0.2)
    Name (localhost:root): vip
    331 Please specify the password.
    Password:
    230 Login successful.
    Remote system type is UNIX.
    Using binary mode to transfer files.
    ftp> ls  # 查看
    229 Entering Extended Passive Mode (|||46926|).
    150 Here comes the directory listing.
    -rwxrwxrwx    1 0        0               0 Jun 06 19:39 test.txt
    226 Directory send OK.
    ftp> get test.txt # 下载
    local: test.txt remote: test.txt
    229 Entering Extended Passive Mode (|||29663|).
    150 Opening BINARY mode data connection for test.txt (0 bytes).
    226 Transfer complete.
    

    上传文件测试

    ftp> put chroot_list
    local: chroot_list remote: chroot_list
    229 Entering Extended Passive Mode (|||60080|).
    150 Ok to send data.
    226 Transfer complete.
    12 bytes sent in 3.6e-05 secs (333.33 Kbytes/sec)
    

    创建删除文件测试

    ftp> mkdir test  # 创建目录test
    257 "/test" created  # 成功
    ftp> ls  # 查看
    229 Entering Extended Passive Mode (|||15449|).
    150 Here comes the directory listing.
    -rw-r--r--    1 14       50             12 Jun 06 19:40 chroot_list
    drwxr-xr-x    2 14       50              6 Jun 06 19:41 test
    -rwxrwxrwx    1 0        0               0 Jun 06 19:39 test.txt
    226 Directory send OK.
    ftp> rmdir test # 删除
    250 Remove directory operation successful. #成功
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/848989.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智慧引领,树莓集团创新式园区运营新实践

在当今经济快速发展的时代,产业园区作为推动地方经济增长、优化产业布局的重要平台,其运营和管理水平的重要性日益凸显。树莓集团,作为成都数字产业园的运营先锋,始终秉持“创新驱动、服务至上”的理念,致力于打造集科…

【System Verilog and UVM基础入门4】程序和接口

目录 方法task和函数function 接口 [System Verilog特性] 方法task和函数function 首先要明白一个事情!Task任务,是消耗时间的,函数function是不消耗时间的! 这样写看着是不是很高大上呢?此外,如果我们想修改时钟周期怎么办呢?这时我们可以在task clk_gen(int period…

【html】如何用html+css写出一个漂亮的“众成教育”页面

先来看看效果图&#xff1a; 源码&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8" /><title></title><style>* {margin: 0;padding: 0;/* border: 2px solid #000; */}.con {width: 1000px;height: 840px…

【精通NIO】NIO介绍

一、什么是NIO NIO&#xff0c;全称为New Input/Output&#xff0c;是Java平台中用于替代传统I/O&#xff08;Blocking I/O&#xff09;模型的一个功能强大的I/O API。NIO在Java 1.4版本中被引入&#xff0c;其设计目标是提供一种非阻塞的、低延迟的I/O操作方式&#xff0c;以…

2024百度之星 跑步

原题链接&#xff1a;码题集OJ-跑步 题目大意&#xff1a;一个n个人在绕圈跑&#xff0c;第i个人跑一圈的时间是i分钟&#xff0c;每二个人位置相同就会打一次招呼&#xff0c;如果同时来到终点&#xff0c;他们就会停下来&#xff0c;请问会打多少次招呼&#xff1f; 思路&a…

SpringCloud网关-gateway

一 什么是网关&#xff1f;为什么选择 Gateway? 网关功能如下&#xff1a; 身份认证和权限校验服务路由、负载均衡请求限流 在 Spring Cloud 中网关的实现包含两种&#xff1a; Gateway&#xff08;推荐&#xff09;&#xff1a;是基于 Spring5 中提供的 WebFlux &#xff…

关于计算机是如何工作的

计算机的发展历程 世界上的第一个计算机 冯诺依曼机构体系 1.存储器 (包括内存(存储空间小,访问速度快,成本高,掉电后数据丢失) 外存(硬盘,软盘,U盘,光盘)),存储空间小,访问速度慢,成本低,掉电后数据仍在 2.CPU(中央处理单元,计算机最核心的部分,用于算术运算和逻辑判断),…

Vue3项目准备:utils工具插件文件夹中封装request.js配置axios请求基地址及超时时间、请求拦截器、响应拦截器

token介绍 概念&#xff1a;访问权限的令牌&#xff0c;本质上是一串字符串 创建&#xff1a;正确登录后&#xff0c;由后端签发并返回 作用&#xff1a;判断是否有登录状态等&#xff0c;控制访问权限 注意&#xff1a;前端只能判断token有无&#xff0c;而后端才能判断tok…

【UML用户指南】-09-对基本结构建模-类图

目录 1、概述 2、引入 3、过程 4、常用建模技术 4.1、对简单协作建模 4.2、对逻辑数据库模式建模 4.3、正向工程 1、概述 类图是面向对象系统建模中最常见的图。 类图显示一组类、接口、协作以及它们之间的关系 类图用于对系统静态设计视图建模。其大多数涉及到对系统的…

java守护线程介绍

在Java中&#xff0c;守护线程&#xff08;Daemon Thread&#xff09;是一种特殊类型的线程&#xff0c;它在后台默默地运行&#xff0c;为其他线程提供服务。当 JVM 中只剩下守护线程时&#xff0c;JVM 会退出。这意味着&#xff0c;守护线程不应该执行关键的任务&#xff0c;…

【NOIP2020普及组复赛】题3:方格取数

题3&#xff1a;方格取数 【题目描述】 设有 nm 的方格图&#xff0c;每个方格中都有一个整数。现有一只小熊&#xff0c;想从图的左上角走到右下角&#xff0c;每一步只能向上、向下或向右走一格&#xff0c;并且不能重复经过已经走过的方格&#xff0c;也不能走出边界。小熊…

嵌入式学习记录6.6(拷贝构造/友元函数/常成员函数)

一.拷贝构造函数和拷贝赋值函数 1.1拷贝构造函数功能,格式 拷贝构造函数是一种特殊的构造函数&#xff0c;用来将一个类对象给另一个类对象初始化使用的。 1> 用一个类对象给另一个类对象初始化时&#xff0c;会自动调用拷贝构造函数。 2> 当一个类对作为函数的实参&…

微信小程序uniapp的父子之间的通信传递

1.父传递给子信息 my-test是子组件 demo是父组件 这是定义在父组件中的的info信息 要将这个传递给子组件 子组件在properties 中接收父组件传递来的数据 msg type 是类型 value是默认值&#xff0c;当父组件没有传递数据时&#xff0c;就会默认使用value的数据 子组件…

设备上CCD功能增加(从接线到程序)

今天终于完成了一个上面交给我的一个小项目&#xff0c;给设备增加一个CCD拍照功能&#xff0c;首先先说明一下本次使用基恩士的CCD相机&#xff0c;控制器&#xff0c;还有软件&#xff08;三菱程序与基恩士程序&#xff09;。如果对你有帮助&#xff0c;欢迎评论收藏&#xf…

顶顶通呼叫中心中间件-同振和顺振配置步骤(mod_cti基于FreeSWITCH)

顶顶通呼叫中心中间件-同振和顺振配置步骤(mod_cti基于FreeSWITCH) 一、拨号方案配置 1、同振 win-ccadmin配置方法 1、点击拨号方案->2、在红框中输入同振->3、点击添加->4、根据图中配置&#xff0c;配置好了等待一分钟即可生效。 web-ccadmin配置方法 2、顺振…

【Python】教你彻底了解 Python中的文件处理

​​​​ 文章目录 一、文件的打开与关闭1. 打开文件2. 关闭文件3. 文件模式 二、文件的读写操作1. 读取文件内容2. 写入文件内容 三、使用上下文管理器四、异常处理五、二进制文件操作1. 读取二进制文件2. 写入二进制文件 六、实际应用示例1. 处理CSV文件2. 处理JSON文件 结论…

kafka安装流程

安装kafka前需要安装zookeeper zookeeper安装教程 1.新建一个logs文件夹 2.修改配置文件 3.修改listeners参数 4.以管理员身份启动kafka服务 .\bin\windows\kafka-server-start.bat .\config\server.properties 如果报 输入行太长。 命令语法不正确。 解决方案如下&#x…

Java 【数据结构】 TreeSetTreeMap(二叉搜索树详解)【神装】

登神长阶 第八神装 TreeSet 第九神装 TreeMap 目录 &#x1f489; 一.二叉搜索树 &#x1fa78;1. 定义 &#x1f48a;2. 基本操作 &#x1fa79;3. 插入操作 &#x1fa7c;4. 查找操作 &#x1fa7a;5. 删除操作* &#x1fa7b;6. 遍历操作 &#x1fa92;7.性能分析 …

引用(C++)和内联函数

前言&#xff1a;本文主要讲解C语法中引用如何使用和使用时的一些技巧 基本语法 引用就是取别名 #include <iostream> using namespace std; int main() {int a 10;int& b a;//给a取别名为bcout << a << endl;cout << b << endl;return 0…

MogoTemplate基本入门(Mongodb数据库基本增删改查)

nosql 因为没有标准的 sql&#xff0c;各有各的操作方式&#xff0c;所以学习成本比较高。实际应用也不会去命令行直接操作&#xff0c;而是用编程语言的 api。 所以我们可以简单了解一下Mongodb&#xff0c;然后用java的Api去操作就行了 没必要花很大功夫在命令行上操作执行…