Linux之selinux详解

华子目录

  • 概念
  • 作用
  • selinux与传统的权限区别
  • selinux工作原理
    • 名词解释
      • 主体(subject)
      • 目标(object)
      • 策略(policy)(==多个规则的集合==)
      • 安全上下文(security context)
  • 文件安全上下文查看
    • 分析
    • seinfo命令
  • selinux的启动,关闭,查看
    • 三种配置模式
    • selinux原理图
    • 查看当前selinux工作模式
    • 临时开启selinux
    • 临时关闭selinux
    • 永久性开启selinux
    • 永久性关闭selinux
    • 注意
  • 查看selinux的状态
    • 命令
    • 分析
  • selinux配置文件
  • 修改安全上下文
    • chcon命令
    • 作用
    • 格式
    • 示例
      • 例1
      • 例2
      • 例3
  • restorecon命令
    • 作用
    • 格式
    • 例1
  • semanage命令
    • 作用
    • 格式
    • 常用命令组
  • 实验1
  • 实验2

概念

  • SELinux(Security-Enhanced Linux)是美国国家安全局在 Linux 开源社区的帮助下开发的一个强制访问控制(MAC,Mandatory Access Control)的安全子系统,用于各个服务进程都受到约束,使其仅获取到本应获取的资源
  • 例如,电脑上下载了一个美图软件,当您全神贯注地使用它给照片进行美颜的时候,它却在后台默默监听着浏览器中输入的密码信息,而这显然不应该是它应做的事情

作用

  • SELinux 域限制:对服务程序的功能进行限制,以确保服务程序做不了出格的事情
  • SELinux 安全上下文:对文件资源的访问限制确保文件资源只能被其所属的服务程序访问

selinux与传统的权限区别

  • 传统的文件权限与账号的关系:属于自主访问控制DAC(Discretionary Access Control),当某个进程想要对文件进行访问时,系统就会根据该进程的所有者/用户组,并比较文件的权限,若通过权限检查,就可以访问该文件,注意:各种权限设置对root用户是无效的
  • SELinux的以策略规则制定特定程序读取特定文件:属于强制访问控制MAC(Mandatory Access Control),可以针对特定的进程与特定的文件资源来进行权限的控制,即使你是root在使用不同的进程时,你所能取得的权限不一定是root,而要看当时该进程的设置而定,则就可以针对进程来进行访问控制

selinux工作原理

名词解释

主体(subject)

  • 主体就是想要访问文件或目录资源的进程
  • 进程得到资源的流程:由用户调用命令,由命令产生进程,由进程去访问文件或目录资源。
  • 自主访问控制系统中(Linux 的默认权限),靠权限控制的主体是用户
  • 强制访问控制系统中(SELinux 中),靠策略规则控制的主体则是进程

目标(object)

  • 目标就是需要访问的文件或目录资源

策略(policy)(多个规则的集合

  • Linux 系统中进程文件数量庞大,所以限制进程是否可以访问文件的 SELinux 规则数量就更加烦琐,如果每个规则都需要管理员手工设定,那么 SELinux 的可用性就会极低,所以SELinux 默认定义了两个策略制订规则
  • selinux的2个默认策略
    • -targeted默认策略,用于限制网络服务(dhcpd,httpd,named,nscd,ntpd,portmap,snmpd,squid,以及 syslogd),对本机系统的限制极少
    • -mls多级安全保护策略,该策略限制更为严格

安全上下文(security context)

  • 所有进程文件目录都有自己的安全上下文
  • 进程是否能够访问文件或目录,就要其安全上下文是否匹配
  • 例:找对象时,男人看作主体,女人就是目标,男人是否可以追到女人主体是否可以访问目标),主要看两人的性格是否合适(主体和目标的安全上下文是否匹配),但两个人的性格是否合适,是需要靠生活习惯、为人处世、家庭环境等具体的条件来进行判断的(安全上下文是否匹配是需要通过策略中的规则来确定的
  • 在这里插入图片描述
  • 解释:
    • 主体(进程) 访问目标(文件) 时,首先要和 SELinux 中定义好的 策略进行匹配
    • 符合定义的策略规则,并且主体的安全上下文目标的安全上下文匹配则允许访问文件
    • 安全上下文比较失败,则拒绝访问,并通过 AVC(Access Vector Cache,访问向量缓存,主要用于记录所有和 SELinux 相关的访问统计信息)生成拒绝访问信息
    • 注意:最终是否可以访问目标文件,还要匹配产生进程(主体)的用户是否对目标文件拥有合理的rwx权限

文件安全上下文查看

[root@server ~]# ls -Z       #-Z:输出每个文件的所有安全上下文信息
unconfined_u:object_r:admin_home_t:s0 公共
unconfined_u:object_r:admin_home_t:s0 模板
unconfined_u:object_r:admin_home_t:s0 视频
unconfined_u:object_r:admin_home_t:s0 图片
unconfined_u:object_r:admin_home_t:s0 文档
unconfined_u:object_r:admin_home_t:s0 下载
unconfined_u:object_r:admin_home_t:s0 音乐
unconfined_u:object_r:admin_home_t:s0 桌面
system_u:object_r:admin_home_t:s0 anaconda-ks.cfg

分析

  • 安全上下文3个冒号分为4个字段

  • 身份标识(identify):相当于账号的身份标识,有三种类型:

    • root:安全上下文的身份是root(用户编号为0),默认会映射为unconfined_u,可以通过以下命令查看映射关系

    • [root@server ~]# semanage login -l

    • 在这里插入图片描述

    • system_u:系统用户身份(用户id1-999),其中u代表user

    • 普通用户名_u:普通用户身份(用户id1000-65535),用户数据的user字段是user_u

      • 注意:user字段只用于标识数据或进程被哪个身份所拥有,比如系统数据的user字段是system_u
  • 角色(role):表示此数据是进程还是文件或目录包含(了解就行)

    • object_r:代表该数据是文件或目录,r代表 role(角色的意思)
    • system_r进程,r代表 role
  • 类型(type):

    • 最重要,进程是否可以访问文件,主要就是看进程的安全上下文类型字段是否和文件的安全上下文类型字段相匹配
    • 在默认的targeted策略中
    • 类型字段在主体(进程)的安全上下文中被称作域(domain)
    • 类型字段在目标(文件或目录)的安全上下文中被称作类型(type)
    • 进程的域与文件类型是否匹配需要查询策略规则
  • 灵敏度:用 s0、s1、s2 来命名,数字为灵敏度分级,数值越大,灵敏度越高,管的越多

seinfo命令

作用:查询身份,角色等信息,需要安装才能使用

[root@server ~]# yum install setools-console -y

格式:

[root@server ~]# seinfo -参数

参数:

-u: 列出SELinux中所有的身份(user);
-r: 列出SELinux中所有的角色(role);
-t: 列出SELinux中所有的类型(type);
-b: 列出所有的布尔值(也就是策略中的具体规则名称);
-x: 显示更多的信息;
[root@server ~]# seinfo -u

Users: 8
   guest_u
   root
   staff_u
   sysadm_u
   system_u
   unconfined_u
   user_u
   xguest_u
[root@server ~]# seinfo -r

Roles: 14
   auditadm_r
   dbadm_r
   guest_r
   logadm_r
   nx_server_r
   object_r
   secadm_r
   staff_r
   sysadm_r
   system_r
   unconfined_r
   user_r
   webadm_r
   xguest_r
[root@server ~]# seinfo -t | wc -l
5051
  • 例子:查看http的默认网页文件信息
[root@server ~]# yum  install httpd  -y
[root@server ~]# ls -Zd /var/www/html   #-d当遇到目录时列出目录本身而非目录内的文件
system_u:object_r:httpd_sys_content_t:s0 /var/www/html

selinux的启动,关闭,查看

三种配置模式

  • enforcing强制模式,启用SELinux,将拦截服务的不合法请求
  • permissive宽容模式,启用SELinux,遇到服务越权访问时,只发出警告而不强制拦截
  • disabled:关闭模式,SELinux没有运行

selinux原理图

在这里插入图片描述

查看当前selinux工作模式

[root@server ~]# getenforce
Enforcing

临时开启selinux

[root@server ~]# setenforce 1    #临时开启
[root@server ~]# getenforce
Enforcing

临时关闭selinux

[root@server ~]# setenforce 0  #临时关闭进入宽容模式
[root@server ~]# getenforce
Permissive

永久性开启selinux

selinux的配置文件/etc/selinux/config

[root@server ~]# vim  /etc/selinux/config 
SELINUX=enforcing 或 enabled
#注:如果将配置文件修改为enabled,则重启后的状态为Permissive

永久性关闭selinux

selinux的配置文件/etc/selinux/config

[root@server ~]# vim  /etc/selinux/config 
SELINUX=disabled    

注意

  • enforcing状态与permissive状态之间切换时,不需要重启系统
  • enforcing、permissivedisabled之间切换时,必须重启系统才会生效

查看selinux的状态

命令

[root@server ~]# sestatus

分析

[root@server ~]# sestatus
SELinux status:                 enabled           # 是否启用  
SELinuxfs mount:                /sys/fs/selinux   # selinux临时文件系统的挂载点
SELinux root directory:         /etc/selinux      # 启动目录,配置文件目录位置
Loaded policy name:             targeted          # 当前加载的策略类型
								    # 策略类型
									#  targeted:只保护目标进行,默认
									#  minimum:少数选定进程进行保护
									#  mls:多级安全保护,最高级
Current mode:                   enforcing         # 执行的模式,重要
Mode from config file:          enforcing         # 配置文件的模式
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Memory protection checking:     actual (secure)
Max kernel policy version:      33

在这里插入图片描述

selinux配置文件

  • selinux的配置文件/etc/selinux/config
  • 注意/etc/sysconfig/selinux文件与上述配置文件内容相同,选择一个配置即可
[root@server ~]# vim  /etc/selinux/config 
SELINUX=enforcing         # 设置模式
SELINUXTYPE=targeted      # 设置策略类型

修改安全上下文

chcon命令

作用

  • 手动修改目标的上下文策略

格式

# 方法1
[root@server ~]# chcon  [-R] [-t  type]  [-u  user]  [-r  role]  文件名
-R:递归修改,当前目录及目录下的所有文件都同时设置
-t:后面接安全上下文件的类型字段(重要)
-u:后面接身份标识
-r:后面接角色
-v:显示变动结果
# 方法2:会把范例文件的4个字段全部进行参照,即全部修改
[root@server ~]# chcon  -R  --reference=范例文件  文件名

示例

例1

  • 使用方法1单独修改
[root@server ~]# touch test
[root@server ~]# ls
公共  模板  视频  图片  文档  下载  音乐  桌面  anaconda-ks.cfg  test
[root@server ~]# ls -Z test
unconfined_u:object_r:admin_home_t:s0 test
[root@server ~]# ls -Z /etc/hosts
system_u:object_r:net_conf_t:s0 /etc/hosts
[root@server ~]# chcon -v -t net_conf_t  /root/test
正在更改 '/root/test' 的安全上下文
[root@server ~]# ls -Z /root/test
unconfined_u:object_r:net_conf_t:s0 /root/test

例2

  • 使用方法2修改
[root@server ~]# touch temp
[root@server ~]# ls
公共  模板  视频  图片  文档  下载  音乐  桌面  anaconda-ks.cfg  temp  test
[root@server ~]# ls -Z temp
unconfined_u:object_r:admin_home_t:s0 temp
[root@server ~]# ls -Z /etc/passwd
system_u:object_r:passwd_file_t:s0 /etc/passwd
[root@server ~]# chcon -v --reference=/etc/passwd ~/temp
正在更改 '/root/temp' 的安全上下文
[root@server ~]# ls -Z temp
system_u:object_r:passwd_file_t:s0 temp

例3

  • 使用httpd服务演示安全上下文值的设定
# 恢复快照
# 开启selinux
# 查看状态
[root@server ~]# getenforce
Enforcing
[root@server ~]# yum  install  httpd  -y
[root@server ~]# mkdir  /web1

# 使用mobaxterm将zy网页文件上传

[root@server ~]# systemctl start httpd
[root@server ~]# vim  /etc/httpd/conf/httpd.conf 
DocumentRoot "/web1"
<Directory "/web1">

[root@server ~]# systemctl restart httpd
# 测试:Windows中浏览器中输入server主机的IP地址,只会看到apache的欢迎页,说明selinux对/web1的安全上下文检测未通过

[root@server ~]# ls  -Zd  /var/www/html  # 查看默认网页目录的安全上下文
system_u:object_r:httpd_sys_content_t:s0 /var/www/html

[root@server ~]# ls  -Zd  /web1
unconfined_u:object_r:default_t:s0 /web1

# 将/web1的类型修改为默认网页目录的类型
[root@server ~]# chcon  -Rv  -t  httpd_sys_content_t  /web1

[root@server ~]# ls -Zd /web1
unconfined_u:object_r:httpd_sys_content_t:s0 /web1

[root@server ~]# systemctl restart httpd
# 测试:此时输入IP地址则可以浏览

restorecon命令

作用

  • 文件的SELinux类型恢复为默认的SELinux类型
  • 默认的SELinux类型semanage命令有关,其参考semanage命令所查询的默认SELinux类型

格式

[root@server ~]# restorecon  [-Rv]  文件或目录
-R:连同子目录一起修改;
-v:将过程显示到屏幕上

例1

  • 将/web1恢复默认类型
[root@server ~]# ls -Zd /web1
unconfined_u:object_r:httpd_sys_content_t:s0 /web1

[root@server ~]# restorecon -Rv /web1

[root@server ~]# ls -Zd /web1
unconfined_u:object_r:default_t:s0 /web1

semanage命令

作用

  • 用于管理 SELinux 的策略查询/修改/增加/删除文件默认SELinux安全上下文,管理网络端口、消息接口

格式

[root@server ~]# semanage   选项    参数   文件
选项:
	login
	user
	port
	interface
	fcontext  #注意:fcontext查询默认安全上下文(重要)
	translation
	boolean
参数:
	 -l :查询;
	 -a :添加
	 -m :修改
	 -d :删除
	 -D :全部删除
	 -t :类型
	 -r :角色
	 -s :用户
	 -f :文件
文件:
	文件或目录

常用命令组

  • 查询出默认的安全上下文
[root@server ~]# semanage  fcontext  -l |  grep  文件名
[root@server ~]# semanage fcontext -l | grep /etc/passwd
/etc/passwd[-\+]?                                  regular file       system_u:object_r:passwd_file_t:s0
/etc/passwd\.OLD                                   regular file       system_u:object_r:passwd_file_t:s0
/etc/passwd\.adjunct.*                             regular file       system_u:object_r:passwd_file_t:s0
/etc/passwd\.lock                                  regular file       system_u:object_r:passwd_file_t:s0
  • 查看允许访问的端口
[root@server ~]# semanage  port  -l  |  grep  协议
[root@server ~]# semanage port -l | grep http
http_cache_port_t              tcp      8080, 8118, 8123, 10001-10010
http_cache_port_t              udp      3130
http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t            tcp      5988
pegasus_https_port_t           tcp      5989
[root@server ~]# semanage port -l | grep ssh
ssh_port_t                     tcp      22

实验1

  • 使用httpd服务的端口演示selinux的设定
#先把/web1的安全上下文类型修改为httpd_sys_content_t
[root@server ~]# ls -Zd /web1
unconfined_u:object_r:default_t:s0 /web1

[root@server ~]# ls -Zd /var/www/html
system_u:object_r:httpd_sys_content_t:s0 /var/www/html

[root@server ~]# chcon -R -t httpd_sys_content_t /web1

[root@server ~]# ls -Zd /web1
unconfined_u:object_r:httpd_sys_content_t:s0 /web1
[root@server ~]# vim  /etc/httpd/conf/httpd.conf 
Listen 7777   # 修改80端口为7777

[root@server ~]# systemctl restart httpd  # 报错
Job for httpd.service failed because the control process exited with error code.
See "systemctl status httpd.service" and "journalctl -xeu httpd.service" for details.

[root@server ~]# semanage port -l | grep http
http_cache_port_t              tcp      8080, 8118, 8123, 10001-10010
http_cache_port_t              udp      3130
http_port_t                    tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000  # 7777端口未在放行列表中
pegasus_http_port_t            tcp      5988
pegasus_https_port_t           tcp      5989
[root@server ~]# systemctl status httpd.service  # 查看日志
[root@server ~]# semanage port -a -t http_port_t -p tcp 7777     # 添加新端口
[root@server ~]# semanage port -l | grep http
http_cache_port_t              tcp      8080, 8118, 8123, 10001-10010
http_cache_port_t              udp      3130
http_port_t                    tcp      7777, 80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t            tcp      5988
pegasus_https_port_t           tcp      5989
[root@server ~]# systemctl restart httpd  # 重启服务成功
[root@server ~]#
# 测试:192.168.48.130:7777

在这里插入图片描述

实验2

  • 使用ssh设置新端口号,设置selinux端口策略
[root@server ~]# semanage  port  -l  |  grep  ssh
ssh_port_t                     tcp      22

[root@server ~]# vim /etc/ssh/sshd_config
Port 2222      # 去掉#,修改端口号

[root@server ~]# systemctl restart  sshd  # 重启失败

[root@server ~]# semanage port -a -t ssh_port_t  -p  tcp  2222 # 添加新端口

[root@server ~]# semanage  port  -l  |  grep  ssh
ssh_port_t                     tcp      2222, 22

[root@server ~]# systemctl restart  sshd  # 重启成功

# 新建会话输入以下内容测试
PS C:\Users\13289> ssh root@192.168.80.130 -p 2222
或
PS C:\Users\13289> ssh -p 2222 root@192.168.80.130
#测试成功

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

三栏布局的实现方法

1. 什么是三栏布局 常见的一种页面布局方式&#xff0c;将页面分为左栏、中栏和右栏左右两侧的盒子宽度固定&#xff0c;中间的盒子会随屏幕自适应一般中间放主体内容&#xff0c;左右两边放辅助内容 2. 如何实现三栏布局 2.1 弹性布局 将最外层盒子设为弹性布局&#xff0…

练习题-14

问题&#xff1a;已知函数 f : R → R f: \mathbb{R} \to \mathbb{R} f:R→R满足 f ( x y ) − f ( x − y ) f ( x ) f ( y ) , ∀ x , y ∈ R . f(xy)-f(x-y)f(x)f(y), \forall x, y \in \mathbb{R}. f(xy)−f(x−y)f(x)f(y),∀x,y∈R. 求 f f f. 提示&#xff1a;如果 f …

基于PBS向超算服务器队列提交任务的脚本模板与常用命令

本文介绍在Linux服务器中&#xff0c;通过PBS&#xff08;Portable Batch System&#xff09;作业管理系统脚本的方式&#xff0c;提交任务到服务器队列&#xff0c;并执行任务的方法。 最近&#xff0c;需要在学校公用的超算中执行代码任务&#xff1b;而和多数超算设备一样&a…

基于美洲狮优化算法(Puma Optimizar Algorithm ,POA)的无人机三维路径规划(提供MATLAB代码)

一、无人机路径规划模型介绍 无人机三维路径规划是指在三维空间中为无人机规划一条合理的飞行路径&#xff0c;使其能够安全、高效地完成任务。路径规划是无人机自主飞行的关键技术之一&#xff0c;它可以通过算法和模型来确定无人机的航迹&#xff0c;以避开障碍物、优化飞行…

第十五届蓝桥杯模拟考试III_物联网设计与开发

编程题 一、基本要求 使用大赛组委会提供的四梯/国信长天物联网省赛套装&#xff08;基于STM32L071KBU微控制器设计&#xff09;&#xff0c;完成本试题的程序设计与调试。程序编写、调试完成后&#xff0c;选手需提交两个LoRa终端对应的hex文件&#xff0c;LoRa终端A对应的文…

【Week Y1】调用官方权重进行检测

YOLO白皮书之调用官方权重进行检测 一、下载yolo-v5s源码&#xff0c;并配置编译环境二、输入本地图片查看检测结果三、输入本地视频查看检测结果 &#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 | 接辅导、项…

C++学习随笔(2)——引用与函数

经过上章对C有了一个初步认识后&#xff0c;本章我们来学习一下C的一些与C语言不同的新玩样引用&#xff0c;还有C的函数规则。 目录 1. 引用 1.1 引用概念 1.2 引用特性 1.3 常引用 1.4 使用场景 &#xff08;1&#xff09; 做参数 &#xff08;2&#xff09; 做返回值…

基于YOLOv8深度学习的路面坑洞检测与分割系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标分割

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…

计算机设计大赛 目标检测-行人车辆检测流量计数

文章目录 前言1\. 目标检测概况1.1 什么是目标检测&#xff1f;1.2 发展阶段 2\. 行人检测2.1 行人检测简介2.2 行人检测技术难点2.3 行人检测实现效果2.4 关键代码-训练过程 最后 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 行人车辆目标检测计数系统 …

服务器-->网站制作-->接口开发,一篇文章一条龙服务(2)

作者&#xff1a;q: 1416279170v: lyj_txd前述&#xff1a;本人非专业&#xff0c;兴趣爱好自学自研&#xff0c;很多没有说清楚的地方见谅&#xff0c;欢迎一起讨论的小伙伴~ 上期回顾&#xff0c;了解 服务器&#xff0c;网站制作&#xff0c;接口开发之见的关系&#xff0c…

【C#语言入门】17. 事件详解(上)

【C#语言入门】17. 事件详解&#xff08;上&#xff09; 一、初步了解事件 定义&#xff1a;单词Event&#xff0c;译为“事件” 通顺的解释就是**“能够发生的什么事情”**&#xff0c;例如&#xff0c;“苹果”不能发生&#xff0c;但是“公司上市”这件事能发生。在C#中事…

Android Gradle 开发与应用 (五) : 基于Gradle 8.2,创建Gradle插件

1. 前言 本文介绍在Android中&#xff0c;如何基于Gradle 8.2&#xff0c;创建Gradle插件。 1.1 本文环境 Android Studio 版本 : Android Studio Hedgehog | 2023.1.1Gralde版本 : gradle 8.2 使用 Android Gradle 插件升级助理 Android Gradle 插件版本说明 1.2 为什么要写…

机器学习(五) -- 监督学习(1) -- 线性回归

系列文章目录 机器学习&#xff08;一&#xff09; -- 概述 机器学习&#xff08;二&#xff09; -- 数据预处理&#xff08;1-3&#xff09; 机器学习&#xff08;三&#xff09; -- 特征工程&#xff08;1-2&#xff09; 机器学习&#xff08;四&#xff09; -- 模型评估…

批量提取PDF指定区域内容到 Excel 以及根据PDF里面第一页的标题来批量重命名-附思路和代码实现

首先说明下&#xff0c;PDF需要是电子版本的&#xff0c;不能是图片或者无法选中的那种。 需求1&#xff1a;假如我有一批数量比较多的同样格式的PDF电子文档&#xff0c;需要把特定多个区域的数字或者文字提取出来 需求2&#xff1a;我有一批PDF文档&#xff0c;但是文件的名…

使用VBA快速梳理多层级族谱(组织架构)

实例需求&#xff1a;族谱&#xff08;或者公司组织架构等&#xff09;都是典型的带有层级关系数据&#xff0c;例如下图中左侧表格所示。 A列为层级&#xff08;准确的讲是B列成员的层级&#xff09;&#xff0c;从一开始递增B列和C列为成员直接的父&#xff08;/母&#xff…

美术馆预约小程序|基于微信小程序的美术馆预约平台设计与实现(源码+数据库+文档)

美术馆预约小程序目录 目录 基于微信小程序的美术馆预约平台设计与实现 一、前言 二、系统设计 三、系统功能设计 1、用户信息管理 2、展品信息管理 3、美术馆信息管理 4、论坛信息管理 四、数据库设计 五、核心代码 七、最新计算机毕设选题推荐 八、源码获取&am…

谷歌BigQuery推出新玩意儿,向量搜索登场啦!

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

AIGC: 2 语音转换新纪元-Whisper技术在全球客服领域的创新运用

背景 现实世界&#xff0c;人跟人的沟通相当一部分是语音沟通&#xff0c;比如打电话&#xff0c;聊天中发送语音消息。 而在程序的世界&#xff0c;大部分以处理字符串为主。 所以&#xff0c;把语音转换成文字就成为了编程世界非常普遍的需求。 Whisper 是由 OpenAI 开发…

【神经网络与深度学习】深度神经网络(DNN)

概述 深度神经网络&#xff08;Deep Neural Networks&#xff0c;DNN&#xff09;是一种由多个隐藏层组成的神经网络模型。每个隐藏层由多个神经元组成&#xff0c;这些神经元通过权重和激活函数进行信息传递和计算。 深度神经网络通过多层的非线性变换&#xff0c;可以学习到…

vue中实现3d词云效果(已封装组件)

<!--* Description: 词云组件 页面* Date: 2024/3/10 23:39 --> <template><div:style"{display: flex,justifyContent: center,border: 1px solid red,}"><svg:width"width":height"height"mousemove"listener($even…