第九章 使用Vsftpd服务传输文件

news2024/12/28 21:21:58

文章目录

    • 第九章 使用Vsftpd服务传输文件
        • 一、文件传输协议
          • 1、FTP介绍
          • 2、FTP工作模式
        • 二、Vsftpd服务程序
          • 1、安装Vsftpd服务程序
          • 2、防火墙配置
          • 3、过滤注释信息并通过重定向符写回原始的主配置文件
          • 4、Vsftpd服务程序常用的参数以及作用
          • 5、匿名访问模式
            • (1)、匿名访问模式介绍
            • (2)、匿名用户模式使用的权限参数以及作用
            • (3)、配置文件并重启服务设置开机自启动
            • (4)、递归目录权限
            • (5)、访问服务器并尝试创建目录
            • (5)、修改策略规则
            • (6)、访问服务器并尝试创建目录
          • 6、本地用户模式
            • (1)、本地用户模式介绍
            • (2)、本地用户模式使用的权限参数以及作用
            • (3)、配置文件并重启服务
            • (4)、访问服务器
            • (5)查看用户名单
            • (6)、删除root用户
            • (7)、访问服务器
          • 7、虚拟用户模式
            • (1)、虚拟用户模式介绍
            • (2)、创建两个用户
            • (3)、创建数据库文件并降低权限,删除原文件
            • (4)、创建目录并映射用户
            • (5)、建立用于支持虚拟用户的PAM文件
            • (6)、利用PAM文件进行认证时使用的参数以及作用
            • (7)、配置文件
            • (8)、创建目录并创建两个以kali和debain命名的文件
            • (9)、配置文件并重启服务
            • (10)访问服务器
        • 三、TFTP简单文件传输协议
          • 1、TFTP介绍
          • 2、安装软件
          • 3、配置文件
          • 4、防火墙配置
          • 5、重启服务并设置开机自启动
          • 6、tftp命令中可用的参数以及作用

第九章 使用Vsftpd服务传输文件

一、文件传输协议

1、FTP介绍

FTP是一种互联网中进行文件传输的协议,基于客户端/服务器模式,默认使用20、21号端口,其中端口20用于进行数据传输,端口21用于接收客户端发出的相关FTP命令与参数。FTP服务器普遍部署于内网中,具有容易搭建、方便管理的特点,而有些FTP客户端工具还可以支持文件的多点下载以及断点续传技术。

FTP服务器是按照FTP协议在互联网上提供文件存储和访问服务的主机,FTP客户端则是向服务器发送连接请求,以建立数据传输链路的主机。

2、FTP工作模式

主动模式:FTP服务器主动向客户端发起连接请求。

被动模式:FTP服务器等待客户端发起连接请求(默认工作模式)。

二、Vsftpd服务程序

1、安装Vsftpd服务程序
[root@centos ~]# yum install vsftpd
CentOS-8.5.2111 - Base - mirrors.aliyun.com      18 kB/s | 3.9 kB     00:00    
CentOS-8.5.2111 - Extras - mirrors.aliyun.com    12 kB/s | 1.5 kB     00:00    
CentOS-8.5.2111 - AppStream - mirrors.aliyun.co  29 kB/s | 4.3 kB     00:00    
软件包 vsftpd-3.0.3-34.el8.x86_64 已安装。
依赖关系解决。
无需任何处理。
完毕!
2、防火墙配置
//清空防火墙默认策略
[root@centos ~]# iptables -F
//保存已被清理的防火墙策略
[root@centos ~]# iptables-save
# Generated by iptables-save v1.8.4 on Tue May  9 11:03:18 2023
*filter
:INPUT ACCEPT [112:10766]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [139:13257]
:LIBVIRT_INP - [0:0]
:LIBVIRT_OUT - [0:0]
:LIBVIRT_FWO - [0:0]
:LIBVIRT_FWI - [0:0]
:LIBVIRT_FWX - [0:0]
COMMIT
# Completed on Tue May  9 11:03:18 2023
# Generated by iptables-save v1.8.4 on Tue May  9 11:03:18 2023
*security
:INPUT ACCEPT [70:5717]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [140:13597]
COMMIT
# Completed on Tue May  9 11:03:18 2023
# Generated by iptables-save v1.8.4 on Tue May  9 11:03:18 2023
*raw
:PREROUTING ACCEPT [117:11838]
:OUTPUT ACCEPT [142:13949]
COMMIT
# Completed on Tue May  9 11:03:18 2023
# Generated by iptables-save v1.8.4 on Tue May  9 11:03:18 2023
*mangle
:PREROUTING ACCEPT [118:11878]
:INPUT ACCEPT [114:10846]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [144:14285]
:POSTROUTING ACCEPT [170:17293]
:LIBVIRT_PRT - [0:0]
-A POSTROUTING -j LIBVIRT_PRT
-A LIBVIRT_PRT -o virbr0 -p udp -m udp --dport 68 -j CHECKSUM --checksum-fill
COMMIT
# Completed on Tue May  9 11:03:18 2023
# Generated by iptables-save v1.8.4 on Tue May  9 11:03:18 2023
*nat
:PREROUTING ACCEPT [23:3213]
:INPUT ACCEPT [2:100]
:POSTROUTING ACCEPT [20:1556]
:OUTPUT ACCEPT [20:1556]
:LIBVIRT_PRT - [0:0]
-A POSTROUTING -j LIBVIRT_PRT
-A LIBVIRT_PRT -s 192.168.122.0/24 -d 224.0.0.0/24 -j RETURN
-A LIBVIRT_PRT -s 192.168.122.0/24 -d 255.255.255.255/32 -j RETURN
-A LIBVIRT_PRT -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p tcp -j MASQUERADE --to-ports 1024-65535
-A LIBVIRT_PRT -s 192.168.122.0/24 ! -d 192.168.122.0/24 -p udp -j MASQUERADE --to-ports 1024-65535
-A LIBVIRT_PRT -s 192.168.122.0/24 ! -d 192.168.122.0/24 -j MASQUERADE
COMMIT
# Completed on Tue May  9 11:03:18 2023
//将FTP协议添加到firewalld服务的允许列表中
[root@centos ~]# firewall-cmd --zone=public --add-service=ftp --permanent
success
//重启服务
[root@centos ~]# firewall-cmd --reload
success
3、过滤注释信息并通过重定向符写回原始的主配置文件
//复制并重命名为备份文件
[root@centos ~]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak
//过滤注释信息并通过重定向符写回原始的主配置文件
[root@centos ~]# grep -v "#" /etc/vsftpd/vsftpd.conf_bak > /etc/vsftpd/vsftpd.conf
//查看配置文件
[root@centos ~]# cat /etc/vsftpd/vsftpd.conf
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=YES
pam_service_name=vsftpd
userlist_enable=YES
4、Vsftpd服务程序常用的参数以及作用
参数作用
listen=[YES|NO]是否以独立运行的方式监听服务
listen_address=IP地址设置要监听的IP地址
listen_port=21设置FTP服务的监听端口
download_enable=[YES|NO]是否允许下载文件
userlist_enable=[YES|NO]
userlist_deny=[YES|NO]
设置用户列表为“允许”还是“禁止”操作
max_clients=0最大客户端连接数,0为不限制
max_per_ip=0同一IP地址的最大连接数,0为不限制
anonymous_enable=[YES|NO]是否允许匿名用户访问
anon_upload_enable=[YES|NO]是否允许匿名用户上传文件
anon_umask=022匿名用户上传文件的umask值
anon_root=/var/ftp匿名用户的FTP根目录
anon_mkdir_write_enable=[YES|NO]是否允许匿名用户创建目录
anon_other_write_enable=[YES|NO]是否开放匿名用户的其他写入权限(包括重命名、删除等操作权限)
anon_max_rate=0匿名用户的最大传输速率,0为不限制
local_enable=[YES|NO]是否允许本地用户登录FTP
local_umask=022本地用户上传文件的umask值
local_root=/var/ftp本地用户的FTP根目录
chroot_local_user=[YES|NO]是否将用户权限禁锢在FTP目录,以确保安全
local_max_rate=0本地用户最大传输速率,0为不限制
5、匿名访问模式
(1)、匿名访问模式介绍

匿名访问模式是一种最不安全的认证模式,任何人都可以无需密码验证而直接登录到FTP服务器。

(2)、匿名用户模式使用的权限参数以及作用
参数作用
anonymous_enable=YES允许匿名访问模式
anon_umask=022匿名用户上传文件的umask值
anon_upload_enable=YES允许匿名用户上传文件
anon_mkdir_write_enable=YES允许匿名用户创建目录
anon_other_write_enable=YES允许匿名用户修改目录名称或删除目录
(3)、配置文件并重启服务设置开机自启动
//配置文件
[root@centos ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
anon_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_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=YES
pam_service_name=vsftpd
userlist_enable=YES
//重启服务设置开机自启动
[root@centos ~]# systemctl restart vsftpd.service
[root@centos ~]# systemctl enable vsftpd.service
Created symlink /etc/systemd/system/multi-user.target.wants/vsftpd.service → /usr/lib/systemd/system/vsftpd.service.
(4)、递归目录权限
//设置递归权限
[root@centos ~]# chown -R ftp /var/ftp/pub/
(5)、访问服务器并尝试创建目录
//访问服务器
PS C:\Users\Administrator> ftp 192.168.100.129
连接到 192.168.100.129220 (vsFTPd 3.0.3)
200 Always in UTF8 mode.
用户(192.168.100.129:(none)): anonymous
331 Please specify the password.
密码:		//直接按回车即可
230 Login successful.
//切换目录
ftp> cd pub
250 Directory successfully changed.
//创建文件夹
ftp> mkdir files
550 Create directory operation failed.
(5)、修改策略规则
[root@centos ~]# setsebool -P ftpd_full_access on
(6)、访问服务器并尝试创建目录
//访问服务器
PS C:\Users\Administrator> ftp 192.168.100.129
连接到 192.168.100.129220 (vsFTPd 3.0.3)
200 Always in UTF8 mode.
用户(192.168.100.129:(none)): anonymous
331 Please specify the password.
密码:		//直接按回车即可
230 Login successful.
//切换目录
ftp> cd pub
250 Directory successfully changed.
//创建文件夹
ftp> mkdir files
257 "/pub/files" created
//重命名文件夹
ftp> rename files database
350 Ready for RNTO.
250 Rename successful.
//删除文件夹
ftp> rmdir database
250 Remove directory operation successful.
6、本地用户模式
(1)、本地用户模式介绍

本地用户模式是通过Linux系统本地账户密码信息进行认证的模式,相较于匿名访问模式更安全,而且配置起来也很简单,但是如果被破解账户的信息,则可以完全控制整台服务器。

(2)、本地用户模式使用的权限参数以及作用
参数作用
anonymous_enable=NO禁止匿名访问模式
local_enable=YES允许本地用户模式
write_enable=YES设置可写权限
local_umask=022本地用户模式创建的umask值
userlist_deny=YES启用“禁止用户名单”,名单文件为ftpusers和user_list
userlist_enable=YES开启用户作用名单文件功能
(3)、配置文件并重启服务
//配置文件
[root@centos ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
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=YES
pam_service_name=vsftpd
userlist_enable=YES
//重启服务
[root@centos ~]# systemctl restart vsftpd.service
(4)、访问服务器
PS C:\Users\Administrator> ftp 192.168.100.129
连接到 192.168.100.129220 (vsFTPd 3.0.3)
200 Always in UTF8 mode.
用户(192.168.100.129:(none)): root
530 Permission denied.
登录失败。
(5)查看用户名单
[root@centos ~]# cat /etc/vsftpd/ftpusers
# Users that are not allowed to login via ftp
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
[root@centos ~]# cat /etc/vsftpd/user_list
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
(6)、删除root用户
[root@centos ~]# cat /etc/vsftpd/ftpusers
# Users that are not allowed to login via ftp
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
[root@centos ~]# cat /etc/vsftpd/user_list
# vsftpd userlist
# If userlist_deny=NO, only allow users in this file
# If userlist_deny=YES (default), never allow users in this file, and
# do not even prompt for a password.
# Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
# for users that are denied.
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody
(7)、访问服务器
PS C:\Users\Administrator> ftp 192.168.100.129
连接到 192.168.100.129220 (vsFTPd 3.0.3)
200 Always in UTF8 mode.
用户(192.168.100.129:(none)): root
331 Please specify the password.
密码:123456
230 Login successful.
7、虚拟用户模式
(1)、虚拟用户模式介绍

虚拟用户模式更安全的一种认证模式,它需要为FTP服务单独建立用户数据库文件,虚拟出用来进行口令验证的账户信息,而这些账户信息在服务器系统中实际上是不存在的,仅供FTP服务程序进行认证使用。即使被破解用户的信息也无法登录到服务器。

(2)、创建两个用户
//用户名kali、debain,密码均为123456
[root@centos ~]# cat /etc/vsftpd/vuser.list
kali
123456
debain
123456
(3)、创建数据库文件并降低权限,删除原文件
//创建数据库文件并使用hash算法进行加密
[root@centos ~]# db_load -T -t hash -f /etc/vsftpd/vuser.list /etc/vsftpd/vuser.db
//降低权限
[root@centos ~]# chmod 600 /etc/vsftpd/vuser.db
//删除是原始明文信息文件
[root@centos ~]# rm -f /etc/vsftpd/vuser.list
(4)、创建目录并映射用户
//创建目录以及虚拟用户映射的系统本地用户,设置为不允许登录FTP服务器
[root@centos ~]# useradd -d /var/ftproot -s /sbin/nologin virtual
//递归更改权限 
[root@centos ~]# chmod -Rf 755 /var/ftproot/
(5)、建立用于支持虚拟用户的PAM文件

PAM可插拔认证模块是一种认证机制,通过一些动态链接库和统一的API把系统提供的服务与认证方式分开,使得系统管理员可以根据需求灵活调整服务程序的不同认证方式。

通俗来讲,PAM是一组安全机制的模块,系统管理员可以轻易地调整服务程序的认证方式,而不必对应用程序进行任何修改。PAM采取了分层设计的思想,包含应用程序层、应用接口层、鉴别模块层,其结构如图所示。

在这里插入图片描述

[root@centos ~]# vim /etc/pam.d/vsftpd.vu
auth    required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
(6)、利用PAM文件进行认证时使用的参数以及作用
参数作用
anonymous_enable=NO禁止匿名访问模式
local_enable=YES允许本地用户模式
guest_enable=YES开启虚拟用户账户
pam_service_name=vsftpd.vu指定PAM文件
allow_writeable_chroot=YES允许对禁锢的FTP根目录执行写入操作,而且不拒绝用户的登录请求
(7)、配置文件
[root@centos ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
guest_enable=YES
guest_username=virtual
allow_writeable_chroot=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd.vu
userlist_enable=YES
(8)、创建目录并创建两个以kali和debain命名的文件
//创建目录
[root@centos ~]# mkdir /etc/vsftpd/vusers_dir
//创建kali文件,只允许kali查看文件
[root@centos ~]# touch /etc/vsftpd/vusers_dir/kali
//创建debain文件,允许debain上传、创建、修改、查看、删除文件
[root@centos ~]# vim /etc/vsftpd/vusers_dir/debain
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
(9)、配置文件并重启服务
//定义虚拟用户不同权的配置文件所存放的路径
[root@centos ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
guest_enable=YES
guest_username=virtual
allow_writeable_chroot=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd.vu
userlist_enable=YES
user_config_dir=/etc/vsftpd/vusers_dir
//重启服务
[root@centos ~]# systemctl restart vsftpd.service
(10)访问服务器
//使用kali用户访问服务器
PS C:\Users\Administrator> ftp 192.168.100.129
连接到 192.168.100.129220 (vsFTPd 3.0.3)
200 Always in UTF8 mode.
用户(192.168.100.129:(none)): kali
331 Please specify the password.
密码:123456
230 Login successful.
//创建文件夹
ftp> mkdir files
550 Permission denied.
ftp> quit
221 Goodbye.

//使用debain用户访问服务器
PS C:\Users\Administrator> ftp 192.168.100.129
连接到 192.168.100.129220 (vsFTPd 3.0.3)
200 Always in UTF8 mode.
用户(192.168.100.129:(none)): debain
331 Please specify the password.
密码:123456
230 Login successful.
//创建文件夹
ftp> mkdir files
257 "/files" created
//重命名文件夹
ftp> rename files database
350 Ready for RNTO.
250 Rename successful.
//删除文件夹
ftp> rmdir database
250 Remove directory operation successful.

三、TFTP简单文件传输协议

1、TFTP介绍

简单文件传输协议(Trivial File Transfer Protocol,TFTP)是一种基于UDP协议在客户端和服务器端之间进行简单文件传输的协议。

2、安装软件
[root@centos ~]# yum install tftp-server tftp xinetd
3、配置文件
[root@centos ~]# vim /etc/xinetd.d/tftp
service tftp
{
        socket_type     = dgram
        protocol        = udp
        wait            = yes
        user            = root
        server          = /usr/sbin/in.tftpd
        server_args     = -s /var/lib/tftpboot
        disable         = no
        per_source      = 11
        cps             = 100 2
        flags           = IPv4
}
4、防火墙配置
//防火墙策略中允许UDP协议的69端口
[root@centos ~]# firewall-cmd --zone=public --add-port=69/udp --permanent
success
//重启服务
[root@centos ~]# firewall-cmd --reload
success
5、重启服务并设置开机自启动
//重启服务
[root@centos ~]# systemctl restart xinetd.service
//设置开机自启动
[root@centos ~]# systemctl enable xinetd.service
6、tftp命令中可用的参数以及作用
参数作用
?帮助信息
put上传文件
get下载文件
verbose显示详细的处理信息
status显示当前的状态信息
binary使用二进制进行传输
ascii使用ASCII码进行传输
timeout设置重传的超时时间
quit退出

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

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

相关文章

【自己更换模型】如何用 Serverless 一键部署 Stable Diffusion?

作者:寒斜 上一篇讲了如何使用 Serverless Devs 和函数计算快速体验部署 Stable Diffusion,本篇继续聊聊如何解决动态模型加载的问题,从玩起来到用起来。 思路 其实很简单, 我们只需要将镜像里面的动态路径映射到 NAS [ 1] 文件…

为什么调度也需要“血缘分析”和“影响分析”?

摘要:数据治理中经常要遇表或者字段级“血缘分析”和“影响分析”,但是真正在数据ETL调度操作过程中使用影响和血缘分析频繁,看白鲸开源的WhaleStudio如何解决这个难题。 提到“血缘分析”和“影响分析”,普通开发者第一印象就是数…

【Java EE 初阶】线程池简介及实现过程

目录 1.线程池是什么? 2.为什么要使用线程池? 3.如何使用线程池 1.JDK给我们提供了一些方法来创造线程池 4.设计模式之工厂模式 1.工厂模式用途 5.自定义一个线程池 1.可以提交任务到线程池,那么就会有一种数据结构来保存我们提交的任…

java lambda表达式详解

一、Lambda初识 我们知道,在Java中,接口是不能实例化的,但是接口对象可以指向它的实现类对象。如果接口连实现对象都没有呢?那还可以使用匿名类的方式,如下: public class JavaTest { public static void main(Strin…

jenkins,gitlab,实时构建推送

首先jdk,jenkins安装好,新版jenkins不支持jdk8 然后安装环境maven,git 环境配置 插件安装 gitlab插件 Build Authorization Token Root插件 插件环境整好之后新建个任务 源码管理,填入仓库https地址,添加git…

大势智慧软硬件技术答疑第一期

1.重建大师生成的实景三维模型,模型周边的道路植物被压平了,怎么保留植物道路原有形状? 答:这个是单体化生成的地理实体场景,会把地物压平,可以用模方将单体化的模型加入到osgb中。 2.直接导入空三的话这个…

采用docker部署时kafka共享zookeeper的网络配置

采用docker部署kafka、zookeeper,一般的做法是创建一个docker网络,然后kafka、zookeeper都使用这个网络。问题是,我部署到生产环境的时候,这种做法被禁止了。原因是添加了这个docker网络以后,服务器就无法访问了。该服…

Es读写调优、深度分页

写入 ES支持四种对文档的数据写操作 create:如果在PUT数据的时候当前数据已经存在,则数据会被覆盖,如果在PUT的时候加上操作类型create,此时如果数据已存在则会返回失败,因为已经强制指定了操作类型为create&#xf…

Spring核心 AOP

1.什么是AOP? AOP(Aspect Orient Programming),直译过来就是面向切面编程。AOP是一种编程思想,是面向对象编程(OOP)的一种补充。面向对象编程将程序抽象成各个层次的对象,而面向切面…

【笔试强训选择题】Day9.习题(错题)解析

作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:笔试强训选择题 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!! 文章目录…

open3d Image和numpy互转,PointCloud和numpy互转

目录 1. open3d.geometry.Image转numpy 2. numpy 转 open3d.geometry.Image 3. numpy转PointCloud 4. PointCloud转numpy 1. open3d.geometry.Image转numpy np_x np.asarray(x) # (h,w,3) import numpy as np import matplotlib.pyplot as plt import matplotlib.image…

鸿蒙Hi3861学习十-Huawei LiteOS-M(消息队列)

一、简介 消息队列,是一种常用于任务间通信的数据结构,实现了接收来自任务或中断的不固定长度的消息,并根据不同的接口选择传递消息是否存放在自己空间。任务能够从队列里面读取消息,当队列中的消息是空时,挂起读取任务…

EC6108V9/V9C-Hi3798MV100-当贝纯净桌面-卡刷固件包

EC6108V9/V9C-Hi3798MV100-当贝纯净桌面-卡刷固件包-内有教程 特点: 1、适用于对应型号的电视盒子刷机; 2、开放原厂固件屏蔽的市场安装和u盘安装apk; 3、修改dns,三网通用; 4、大量精简内置的没用的软…

C#学习笔记--实现一个可以重复权重并且能够自动排序的容器--MultiplySortedSet

目录 前言SortedSetC#自带类型自定义类SortedSet权值重复 需求自定义容器 -- MultiplySortedSet核心实现思路 MultiplySortedSet 使用C#自带类型自定义类 前言 最近需要在C#中实现一个功能 有一个容器,该容器能自动对里面的元素进行排序,类似C的优先队列…

fast中user_id如何显示user表中的名称_关联模型

问题:编辑框内的user_id显示的是nickname 列表里如何显示nickname或是username 解决方案如下: 需要更改3个地方,控制器,模型,js文件 1.控制器index list($where, $sort, $order, $offset, $limit) $this->build…

ES6D: 利用对称性进行高效的6D姿态检测

利用对称性进行高效的6D姿态检测 本文参考自CVPR2022的这篇文章:ES6D: A Computation Efficient and Symmetry-Aware 6D Pose Regression Framework Github链接为:https://github.com/GANWANSHUI/ES6D 介绍 在6D姿态检测中,一些具备对称性的…

米哈游的春招实习面经,问的很基础

米哈游的春招实习面经,主要考察了java操作系统mysql网络,这四个方面。 面试流程,共1小时,1min自我介绍,20min写题,剩下问题基础知识。 Java String,StringBuilder, StringBuffer区…

注意力模型

如果拿机器翻译来解释这个分心模型的Encoder-Decoder框架更好理解,比如输入的是英文句子:Tom chase Jerry,Encoder-Decoder框架逐步生成中文单词:“汤姆”,“追逐”,“杰瑞”。 在翻译“杰瑞”这个中文单词…

低代码/0代码(无代码)开发平台如何选型?这篇文章告诉你

随着数字化转型的加速,越来越多的企业开始寻求低代码或零代码开发平台来加速应用程序的开发和部署。选对合适的平台是至关重要的,因为这将决定企业能否在数字化转型中保持竞争优势。 市面上的低/零代码平台五花八门,在选型的时候需要考虑哪些…

搭建本地仓库源

一、如何搭建仓库源 之前讲了定制ISO的方法:使用chroot定制系统,但有时候我们想自定义的安装包不在上游的仓库源中,在我们本地应该怎么办呢?如果我们将deb包拷贝到iso目录再安装有点过于麻烦了,而且还可能需要手动处理…