Linux安全之auditd审计工具使用说明

一、auditd工具简介

  audited是Linux审核系统的用户空间组件。它负责将审核记录写入磁盘。查看日志是通过ausearch或aureport实用程序完成的。审核系统或加载规则的配置是使用auditctl实用程序完成的。在启动过程中,/etc/audit/audit.rules中的规则由auditctl读取并加载到内核中。另外,还有一个augenrules程序,它读取/etc/audit/rules.d/中的规则,并将它们编译为audit.rules文件。审核守护进程本身有一些管理员可能希望自定义的配置选项,它们位于audited.conf文件中。

二、auditd配置文件说明

1、配置文件关键字说明

关键字关键字说明
num_days日志保留的天数
idletime空闲时间
max_log_file这个关键字指定了以兆字节为单位的最大文件大小。当达到这个限制时,它将触发一个可配置的操作。给定的值必须是数值。
max_log_file_action此参数告诉系统当系统检测到已达到最大文件大小限制时采取什么操作。有效值为ignore、syslog、suspend、rotate和keep_logs。如果设置为ignore,审计守护进程什么都不做。Syslog表示它将向Syslog发出警告。Suspend将导致审计守护进程停止向磁盘写入记录。守护进程还会活着。rotate选项将导致审计守护进程旋转日志。需要注意的是,数值大的日志比数值小的日志要早。这与logrotate实用程序使用的约定相同。keep_logs选项类似于rotate,只是它不使用num_logs设置。这可以防止审计日志被覆盖。
space_left这是一个以兆字节为单位的数值,它告诉审计守护进程何时执行可配置的操作,因为系统的磁盘空间开始不足。
space_left_action这个参数告诉系统,当系统检测到磁盘空间开始变少时,应该采取什么行动。有效值为:ignore、syslog、email、exec、suspend、single和halt。如果设置为ignore,审计守护进程什么都不做。Syslog表示它将向Syslog发出警告。Email意味着它将向action_mail_acct中指定的电子邮件帐户发送警告,同时将消息发送到syslog。Exec /path-to-script将执行脚本。您不能将参数传递给脚本。Suspend将导致审计守护进程停止向磁盘写入记录。守护进程还会活着。single选项将导致审计守护进程将计算机系统置于单用户模式。Halt选项将导致审计守护进程关闭计算机系统。
local_events本地的事件是否记录,设置为no的场景应该是只作为远程日志收集的服务器,但自身的日志大多数时候也是有必要记录的
write_logs日志是否落盘,设置为no的场景应该是将会把日志存储到远程服务器的客户端(没有足够空间的情况下)
log_file此关键字指定存储审计记录的日志文件的完整路径名。它必须是一个普通文件。
log_format日志格式描述了信息应该如何存储在磁盘上。有两个选项:raw和nolog。如果设置为RAW,审计记录将按照内核发送的格式存储。如果该选项设置为NOLOG,那么所有审计信息将被丢弃,而不会写入磁盘。该模式不影响发送到审计事件分配器的数据。
log_group此关键字指定应用于日志文件权限的组。默认为root。组名可以是数字,也可以拼写出来。
priority_boost这是一个非负数,告诉审计守护进程应该提高多少优先级。默认值为4。没有变化是0。
flush有效值为none、incremental、data和sync。如果设置为none,则不会进行特殊操作将审计记录刷新到磁盘。如果设置为增量,那么freq参数用于确定显式刷写磁盘的频率。data参数告诉审计守护进程始终保持磁盘文件的数据部分同步。sync选项告诉审计守护进程在每次写入磁盘时保持数据和元数据完全同步。
freq这是一个非负数,告诉审计守护进程在发出显式刷写到磁盘命令之前要写入多少条记录。只有将flush关键字设置为incremental时,这个值才有效。
num_logs如果rotate指定了max_log_file_action,则该关键字指定了保留的日志文件数。如果数字是<2、日志不旋转。这个数字必须小于等于99。默认值为0,表示没有旋转。随着要旋转的日志文件数量的增加,可能需要向上调整内核积压工作表的设置,因为旋转文件需要更多的时间。这通常在/etc/audit/audit.rules中完成。如果配置日志轮换,守护进程将检查多余的日志并删除它们,以保持磁盘空间可用。只有在启动和重新配置导致空间检查时,才会进行多余的日志检查。
disp_qos此选项控制您想要在审计守护进程和调度程序之间进行阻塞/无损通信还是非阻塞/有损通信。在审计守护进程和分配器之间有一个128k的缓冲区。对于大多数应用来说,这已经足够了。如果选择了lossy,那么当队列满时,进入分派器的事件将被丢弃。(如果log_format不是nlog,事件仍然写入磁盘。)否则,auditd守护进程将等待队列有一个空位,然后将日志记录到磁盘。风险在于,当守护进程等待网络IO时,事件不会被记录到磁盘上。有效值有:lossy和lossless。默认值为Lossy。
dispatcherdispatcher是一个由审计守护进程在启动时启动的程序。它将把所有审计事件的副本传递给应用程序的stdin。请确保您信任添加到这一行的应用程序,因为它以root权限运行。
name_format该选项控制计算机节点名如何插入到审计事件流中。它有以下选项:none、hostname、fqd、numeric和user。None表示没有向审计事件插入计算机名。Hostname是gethostname系统调用返回的名称。fqd意味着它接收主机名并通过dns解析为该机器的完全限定域名。Numeric类似于fqd,只是它可以解析机器的IP地址。为了使用这个选项,你可能想测试hostname -idomainname -i是否返回一个数字地址。此外,如果使用dhcp,则不建议使用此选项,因为随着时间的推移,同一台机器可能有不同的地址。User是一个从name选项中定义的管理员字符串。默认值为none。
name这是管理员定义的字符串,如果user被指定为name_format选项,它将标识该机器。
action_mail_acct此选项应包含有效的电子邮件地址或别名。默认地址为root。如果电子邮件地址不是本机的,你必须确保在你的机器和网络上正确配置了电子邮件。此外,该选项要求计算机上存在/usr/lib/sendmail。
admin_space_left这是一个以兆字节为单位的数值,它告诉审计守护进程何时执行可配置的操作,因为系统磁盘空间不足。这应该被视为耗尽磁盘空间之前执行某些操作的最后机会。该参数的数值应该小于space_left的数值。
admin_space_left_action此参数告诉系统当系统检测到磁盘空间不足时采取什么操作。有效值为:ignore、syslog、email、exec、suspend、single和halt。如果设置为ignore,审计守护进程什么都不做。Syslog表示它将向Syslog发出警告。Email意味着它将向action_mail_acct中指定的电子邮件帐户发送警告,同时将消息发送到syslog。Exec /path-to-script将执行脚本。您不能将参数传递给脚本。Suspend将导致审计守护进程停止向磁盘写入记录。守护进程还会活着。single选项将导致审计守护进程将计算机系统置于单用户模式。停止
disk_full_action这个参数告诉系统,当系统检测到日志文件写入的分区已满时,应该采取什么行动。有效值为ignore、syslog、exec、suspend、single和halt。如果设置为ignore,审计守护进程将发出syslog消息,但不采取其他操作。Syslog表示它将向Syslog发出警告。Exec /path-to-script将执行脚本。您不能将参数传递给脚本。Suspend将导致审计守护进程停止向磁盘写入记录。守护进程还会活着。single选项将导致审计守护进程将计算机系统置于单用户模式。Halt选项将导致审计守护进程关闭计算机系统。
disk_error_action这个参数告诉系统,在将审计事件写入磁盘或循环日志时,如果检测到错误,应该采取什么操作。有效值为ignore、syslog、exec、suspend、single和halt。如果设置为ignore,审计守护进程将不执行任何操作。Syslog表示对Syslog连续发出的警告不超过5次。Exec /path-to-script将执行脚本。您不能将参数传递给脚本。Suspend将导致审计守护进程停止向磁盘写入记录。守护进程还会活着。single选项将导致审计守护进程将计算机系统置于单用户模式。Halt选项将导致审计守护进程关闭计算机系统。
tcp_listen_port这是一个范围为1的数值。65535,如果指定,将导致auditd在对应的TCP端口上监听来自远程系统的审计记录。审计守护进程可以链接到tcp_wrapper。您可能希望通过主机中的一个条目来控制访问。允许和拒绝文件。
tcp_listen_queue这是一个数值,表示允许的挂起(请求但未接受的)连接数。默认值为5。如果在同一时间启动的主机太多,例如停电后,这个值设置得太小可能会导致连接被拒绝。
tcp_max_per_addr这是一个数值,表示一个IP地址允许的并发连接数。默认值为1,最大1024。设置得太大可能导致对日志服务器的拒绝服务攻击。还要注意,内核有一个内部的最大值,即使auditd通过config允许这样做,最终也会阻止该操作。默认值在大多数情况下应该足够了,除非运行自定义编写的恢复脚本来转发未发送的事件。在这种情况下,你只需要增加足够大的数字就可以让它进来。
use_libwrap该设置确定是否使用tcp_wrapper来识别来自允许的计算机的连接尝试。合法的取值包括“yes”和“no”。默认值为“yes”。
tcp_client_ports这个参数可以是一个数值,也可以是两个由破折号分隔的值(不允许有空格)。它表明客户端端口允许传入的连接。如果没有指定,则允许任何端口。允许取值为1 ~ 65535。例如,要要求客户端使用特权端口,请将此参数指定为1-1023。你还需要在audio -remote.conf文件中设置local_port选项。确保客户发送从特权端口安全功能,以防止不可信用户日志注入攻击。
tcp_client_max_idle该参数表示在auditd发出报警之前,客户端可能空闲的秒数(即根本没有数据)。如果客户端机器出现问题,无法干净地关闭连接,则用于关闭非活动连接。注意,这是一个全局设置,必须比任何单独的客户端heartbeat_timeout设置高,最好是2倍。默认为零,禁用此检查。
enable_krb5如果设置为“yes”,Kerberos 5将用于身份验证和加密。默认值为no。
krb5_principal这是此服务器的主体。默认值是auditd。有了这个默认值,服务器将查找存储在/etc/audit/audit.中名为auditd/hostname@EXAMPLE.COM的键key进行身份验证,其中hostname是服务器主机的规范名称,通过DNS查找其IP地址返回。
krb5_key_file此客户端主体的密钥位置。注意,密钥文件必须为root用户所有,模式为0400。默认的是/etc/audit/audit.key

2、默认配置释义

[root@s166 audit]# cat /etc/audit/auditd.conf
#
# This file controls the configuration of the audit daemon
#
#记录本地事件
local_events = yes
#日志落盘存储
write_logs = yes
#审计日志存储路径
log_file = /var/log/audit/audit.log
#日志文件属组
log_group = root
#日志文件格式
log_format = RAW
#异步增量方式刷新到磁盘
flush = INCREMENTAL_ASYNC
#记录数量达到此数值时写入磁盘,与flush结合使用
freq = 50
#单个日志文件大小,单位为M,超过8M进行日志分割
max_log_file = 8
#日志文件保存数量,超过的会被清除
num_logs = 5
#守护进程优先级
priority_boost = 4
#队列满是,丢弃事件记录
disp_qos = lossy
#守护进程启动的程序
dispatcher = /sbin/audispd
#审计事件不插入主机名
name_format = NONE
#管理员可以指定主机名,默认注释,未启用
##name = mydomain
#日志文件超过大小时的动作,ROTATE表示将日志轮转分割
max_log_file_action = ROTATE
#系统磁盘空间剩余大小时执行动作,但是为M
space_left = 75
#系统磁盘空间不足时执行的操作,发送SYSLOG告警
space_left_action = SYSLOG
#是否发送邮件,取值yes或者no
verify_email = yes
#发送邮箱的账户,默认root@localhost,如果配置的是网络邮箱,/usr/lib/sendmail确保正确配置
action_mail_acct = root
#磁盘空间剩余大小,剩余不足50M时停止审计记录写入
admin_space_left = 50
admin_space_left_action = SUSPEND
#磁盘满或者磁盘错误的时候停止写入审计记录
disk_full_action = SUSPEND
disk_error_action = SUSPEND
#如下是审计客户端连接相关参数
use_libwrap = yes
##tcp_listen_port = 60
tcp_listen_queue = 5
tcp_max_per_addr = 1
##tcp_client_ports = 1024-65535
tcp_client_max_idle = 0
enable_krb5 = no
krb5_principal = auditd
##krb5_key_file = /etc/audit/audit.key
distribute_network = no

三、auditd相关命令与配置文件

1、auditd相关命令

  • auditctl : 即时控制审计守护进程的行为的工具,如添加规则等。
  • **auditd :**audit 守护进程负责把内核产生的信息写入到硬盘上,这些信息由应用程序和系统活动触发产生。用户空间审计系统通过 auditd 后台进程接收内核审计系统传送来的审计信息,将信息写入到 /var/log/audit/audit.log。
  • aureport : 查看和生成审计报告的工具。
  • ausearch : 查找审计事件的工具
  • auditspd : 转发事件通知给其他应用程序,而不是写入到审计日志文件中。
  • autrace : 一个用于跟踪进程的命令。类似于 strace,跟踪某一个进程,并将跟踪的结果写入日志文件之中。
  • aulast: 与last类似,但使用审计框架安装
  • aulastlog: 与lastlog类似,也使用审计框架
  • ausyscall: 映射syscall ID和名称
  • auvirt: 显示关于虚拟机的审计信息

2、auditd相关配置文件

  • /etc/audit/auditd.conf : auditd工具的配置文件
  • /etc/audit/rules.d/audit.rules:包含审核规则的文件,如果我们需要修改审计范围,直接编辑该文件,并使用auditctl -R 命令重载审计规则配置文件
  • /etc/audit/audit.rules : 记录审计规则的文件,该配置文件是根据etc/audit/rules.d/audit.rules下的配置文件自动生成

四、auditd使用举例

1、查看当前审计规则

[root@s166 audit]# auditctl -l
No rules

2、配置一条审计规则

[root@s166 audit]# echo “-w /etc/hosts -p wa -k hosts_change” >> rules.d/audit.rules

3、重载配置

[root@s166 audit]# auditctl -R /etc/audit/rules.d/audit.rules

4、再次查看审计规则

[root@s166 audit]# auditctl -l
-w /etc/hosts -p wa -k hosts_change

5、修改/etc/hosts文件

[root@s166 audit]# vim /etc/hosts

192.168.0.186 s186

6、查看审计记录

[root@s166 audit]# ausearch --start today -k “hosts_change”
在这里插入图片描述

五、auditd服务管理

  auditd服务默认开机自启动,配置了禁止手动启停服务,如果我们需要启动或者停止服务,需要修改/usr/lib/systemd/system/auditd.service中的RefuseManualStop=no,否则服务启停服务命令,修改完成后执行systemctl daemon-reload ,然后就可以手动启停管理服务了。实际上我们也可以不停止服务的情况下停止审计,只需要执行auditd -s disable命令就可以停止审计记录。

  • 查看auditd服务状态:systemctl status auditd
  • 配置服务开机自启动:systemctl enable auditd
  • 取消服务开机自启动:systemctl disable auditd
  • 停止auditd服务:systemctl stop auditd
  • 启动auditd服务:systemctl start auditd
  • 重启auditd服务:systemctl restart auditd
  • 重载审计规则配置:auditctl -R /etc/audit/rules.d/audit.rules
  • 停止审计:auditd -s disable
  • 开启审计:auditd -s enable

六、auditctl命令简介

  audit 我们可以使用auditctl临时配置规则,服务重启失效,如果需要配置永久生效,我们需要将规则写入到配置文件中。auditd审计规则分成三个部分,

  • 控制规则:这些规则用于更改审计系统本身的配置和设置。
  • 文件系统规则:这些是文件或目录监视。 使用这些规则,我们可以审核对特定文件或目录的任何类型的访问。
  • 系统调用规则:这些规则用于监视由任何进程或特定用户进行的系统调用。

1、命令语法

#auditctl [选项] filter,action -S syscall -F condition -k label

2、命令参数说明

参数参数说明
-w path指定要监控的路径
-p指定触发审计的文件/目录的访问权限rwxa,指定的触发条件,r 读取权限,w 写入权限,x 执行权限,a 属性(attr)
-k在审核规则上设置过滤名称,方便后面使用ausearch查找
-D删除所有规则和监控
-W删除指定path的规则和-w对应,参数都要一样才能删除
-b在 Kernel 中设定最大数量的已存在的审核缓冲区
-R读取审计规则配置
-l列表展示审计规则
-s查看审计状态
-v查看命令帮助
-h获取命令帮助
-a添加一条系统调用规则
-d删除一条系统调用规则
-r设置每秒生成信息的速率
-S表示系统调用号或名字
-F表示规则域

3、命令选项说明

项目可选参数说明
filteruser,exit,task,exclude filter详细说明哪个内核规则匹配过滤器应用在事件中。以下是其中之一的与规则匹配的过滤器: task、exit、user 以及 exclude
actionalways, never是否审核事件(always 表示是)(never 表示否)
syscallall, 2, open 等所有的系统调用都可以在/usr/include/asm/unistd_64.h 文件中找到。许多系统调用都能形成一个规则
conditioneuid=0, arch=b64详细说明其他选项,进一步修改规则来与以特定架构、组 ID、进程 ID 和其他内容为基础的事件相匹配
label任意文字标记审核事件并检索日志

4、命令使用示例

  • 添加一条指定路径规则

[root@s166 audit]# auditctl -w /mnt/testfile -p wa -k config-change
[root@s166 audit]# auditctl -l
-w /etc/hosts -p wa -k hosts_change
-w /mnt/testfile -p wa -k config-change

  • 删除一条指定路径规则

[root@s166 audit]# auditctl -W /mnt/testfile -p wa -k config-change
[root@s166 audit]# auditctl -l
-w /etc/hosts -p wa -k hosts_change

  • 删除所有规则

[root@s166 audit]# auditctl -D
No rules
[root@s166 audit]# auditctl -l
No rules

  • 查看规则

[root@s166 audit]# auditctl -l
No rules

七、ausearch命令简介

  使用 ausearch ,您可以过滤和搜索事件类型。 它还可以通过将数值转换为更加直观的值(如系统调用或用户名)来解释事件。以根用户身份执行 ausearch 命令,当显示结果时,每个记录用 4 条虚线组成的一行隔开,每个记录前均显示时间标记。

1、常用参数说明

参数参数说明
-f,–file <文件名>根据文件名搜索
-c,–comm根据命令行名称搜索
-ui,–uid<用户id> 根据用户id搜索
-p,–pid<进程id> 根据进程id搜索
-k,–key根据key字段搜索
-te,–end[结束日期] [结束时间] 搜索的结束日期和时间
-ts,–start[开始日期] [开始时间] 开始数据和搜索时间
-m指定消息类型

2、命令使用示例

  • 查询所有事件

[root@s166 audit]# ausearch -m all

  • 查询指定时间段的日志

[root@s166 audit]# ausearch --start today --end “now”

  • 查询指定用户日志

[root@s166 audit]# ausearch -ua kingbase

  • 根据文件路径查找日志

[root@s166 audit]# ausearch -f /etc/hosts

  • 根据系统调用查询日志

[root@s166 audit]# ausearch -sc open

  • 根据过滤关键字查询日志

[root@s166 audit]# ausearch -k “hosts_change”

  • 搜索系统登录失败日志

[root@s166 audit]# ausearch --message USER_LOGIN --success no --interpret

  • 搜索所有的账户,群组,角色变更

[root@s166 audit]# ausearch -m ADD_USER -m DEL_USER -m ADD_GROUP -m USER_CHAUTHTOK -m DEL_GROUP -m CHGRP_ID -m ROLE_ASSIGN -m ROLE_REMOVE -i

  • 搜寻从制定时间段的失败的系统调用

[root@s166 audit]# ausearch --start “2023年10月22日” --end “now” -m SYSCALL -sv no -i

八、aureport命令简介

  要生成审计消息的报表,可使用 aureport 命令。如果执行 aureport 时没有使用任何选项,则会显示如汇总报表。

1、常用参数说明

参数参数说明
-a、 --avcavc报告
-au,–auth身份验证报告
–comm命令运行报告
-c、 --config配置更改报告
-cr,–crypto加密报告
-e、 --event事件报告
-f、 --file文件名报告
–failed报表中只有失败的事件
-h、 --主机远程主机名报告
–help帮助
-i、 --interpret解释模式
-if,–input<input File name>使用此文件作为输入
–input logs即使stdin是管道,也要使用日志
–integrity完整性事件报告
-l、 --login登录报告
-k、 --key密钥报告
-m、 --mods修改帐户报告
-ma,–mac强制访问控制(mac)报告
-n、 --异常anomaly报告
-nc,–no config不包括配置事件
–node<node name>仅来自特定节点的事件
-p、 --pidpid报告
-r、 --响应对异常报告的响应
-s、 --syscall系统调用报告
–success报表中只有成功事件
–summary报表中主对象的排序汇总
-t、 --log日志时间范围报告
-te,–end[结束日期][结束时间]报表的结束日期和时间
-tm,–terminalterminal名称报告
-ts,–开始[开始日期][开始时间]开始数据和报告时间
–tty关于tty击键的报告
-u、 --user用户名报告
-v、 --版本版本
–virt虚拟化报告
-x、 --可执行文件可执行名称报告

2、命令使用示例

  • 生成所有报告

[root@s166 audit]# aureport
在这里插入图片描述

  • 生成文件相关的报告

[root@s166 audit]# aureport -f
在这里插入图片描述

  • 生成用户相关的报告

[root@s166 audit]# aureport -u

  • 生成配置变更报告

[root@s166 audit]# aureport -c

  • 生成登录记录报告

[root@s166 audit]# aureport -l

  • 生成指定时间段的报告

[root@s166 audit]# aureport -ts “8:00:00” -te “now” -l -i

Login Report
============================================
# date time auid host term exe success event
============================================
\1. 2023年10月25日 11:01:08 root 192.168.0.186 ssh /usr/sbin/sshd no 1413

  • 生成所有用户失败事件的总结报告

[root@s166 audit]# aureport -u --failed --summary -i

Failed User Summary Report
===========================
total auid
===========================
34 root
20 unset

  • 生成系统调用事件报告

[root@s166 audit]# aureport -s -i --summary

Syscall Summary Report
==========================
total syscall
==========================
161 setsockopt
57 execve
30 init_module
27 unshare
5 ioctl
4 open
2 write
2 rename
2 chmod
2 setxattr
1 fchmodat
1 unlinkat

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

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

相关文章

【傻瓜级JS-DLL-WINCC-PLC交互】1.C#用windows窗体控件创建.net控件

思路 JS-DLL-WINCC-PLC之间进行交互&#xff0c;思路&#xff0c;先用Visual Studio创建一个C#的DLL控件&#xff0c;然后这个控件里面嵌入浏览器组件&#xff0c;实现JS与DLL通信&#xff0c;然后DLL放入到WINCC里面的图形编辑器中&#xff0c;实现DLL与WINCC的通信。然后PLC与…

visual c++ 2019 redistributable package

直接安装下面包只有24M Microsoft Visual C Redistributable 2019 x86: https://aka.ms/vs/16/release/VC_redist.x86.exe x64: https://aka.ms/vs/16/release/VC_redist.x64.exe ———————————————— 版权声明&#xff1a;本文为CSDN博主「kpacnB_Z」的原创文章…

uniapp设置手机通知权限

提醒用户开启通知权限&#xff0c;与unipush功能联用 效果图&#xff1a; 方法&#xff1a; 直接使用即可&#xff0c;在真机或模拟器运行 setPermissions() {// #ifdef APP-PLUS if (plus.os.name Android) { // 判断是Androidvar main plus.android.runtimeMainActivity…

oracle免费资源 终止实例 以及新建一台实例的折腾记录

事情的背景是这样的&#xff0c;我的一台oracle小鸡&#xff0c;不太好用的样子&#xff0c;有时候SSH连不上&#xff0c;有时候莫名其妙卡住。所以我就想把它重新安装一下系统&#xff0c;恢复成最初的样子。 然后在网上查资料&#xff0c;是有办法把系统重装一下的。但是略微…

抖去推--短视频账号矩阵系统saas工具源码技术开发

一、短视频矩阵系统搭建常见问题&#xff1f; 1、抖去推的短视频AI矩阵营销软件需要一定的技术水平吗&#xff1f; 答&#xff1a;不需要。产品简单易用&#xff0c;不需要具备专业的技术水平&#xff0c;即使是初学者&#xff0c;也能够轻松上手操作。 3、抖去推的短视频AI矩…

神经网络可视化——基于torchviz绘制模型的计算图

神经网络可视化——基于torchviz绘制模型的计算图 第一步、安装 graphviz 和 torchviz 库 第二步、编写代码生成计算图 第三步、安装graphviz软件 在深入理解深度学习模型时&#xff0c;可视化网络结构是一个非常有用的手段。今天介绍如何使用 torchviz 和 graphviz 来生成网…

很清楚展示GPT插件的调用过程,人工智能(AI)的潜在危险与好处 超级智能 未来

好处&#xff0c;未来 很清楚展示GPT插件的调用过程&#xff1a; 把请求和要求发chatGPT chatGPT返回markdown格式发给插件 插件返回结果给用户。 你不用别人用。 人工智能&#xff08;AI&#xff09;的最危险之处通常与以下几个方面有关&#xff1a; 自主决策能力过强&…

元宇宙3d服装数字化交互展示营销平台大幅提高客户满意度和口碑

web3D云展营销平台是以web3d开发、VR虚拟现实和计算机技术&#xff0c;以展品3D展示、数字人&#xff0c;AI&#xff0c;社交等技术打造&#xff0c;为 Web3D可视化提供了丰富的展示形式和效果&#xff0c;实现将线下展厅、展品在线上1&#xff1a;1复刻呈现的线上场景营销。 w…

企业软件手机app定制开发新趋势|网站小程序搭建

企业软件手机app定制开发新趋势|网站小程序搭建 随着移动互联网的快速发展和企业数字化转型的加速&#xff0c;企业软件手机App定制开发正成为一个新的趋势。这种趋势主要是由于企业对于手机App的需求增长以及现有的通用应用不能满足企业特定需求的情况下而产生的。 首先&#…

使用char.js 柱形方式显示 一年12个月的最高气温与最低气温

<!DOCTYPE html> <html> <head><title>气温图表</title><script src"https://cdn.jsdelivr.net/npm/chart.js"></script><style>#myChart{width:800px;height: 400px;}</style> </head> <body>&l…

【一文带你读懂docker,从入门到精通!】

dockerfile 是啥?dockerfile 用来构建 docker 镜像的文件。 前言 Docker 入门到精通 1、DockerFile 介绍 dockerfile 是啥?dockerfile 用来构建 docker 镜像的文件。 具体步骤&#xff1a; 1、编写一个 dockerfile 文件 2、docker build 构造一个镜像 3、docker run 运行…

Swift下如何使用#if条件编译

一、OC使用条件编译 OC中可以使用宏定义&#xff0c;再使用条件编译 #define USER_CUSTOM使用 #if USER_CUSTOM //其他代码 #endif二、Swift使用条件编译 Swift 不像ObjectC一样&#xff0c;通过定义一个变量&#xff0c;然后使用**#if #endif** 方法。swift需要设置一下才能…

计算机网络(超详解!) 第一节计算机网络的性能指标

1.速率 比特&#xff08;bit&#xff09;是计算机中数据量的单位&#xff0c;也是信息论中使用的信息量的单位。 比特&#xff08;bit&#xff09;来源于 binary digit&#xff0c;意思是一个“二进制数字”&#xff0c;因此一个比特就是二进制数字中的一个 1 或 0。 速率是…

aPEAR包绘制功能富集网络图

本期教程 前言 今天学习aPEAR包&#xff0c;绘制KEGG和GO功能富集网络图&#xff0c;用起来还是比较方便的&#xff0c;直接将clusterProfiler富集结果进行绘制&#xff0c;对人类、动物等分析结果非常方便。对于模式植物&#xff0c;使用自己制作的GO或KEGG背景文件进行富集分…

QT linux下应用程序打包

一、应用程序app 1、应用程序的pro文件 2、 程序工作函数 3、app的UI界面 二、动态库lib 1、Lib类头文件 2、.cpp文件 三、对应用程序和动态库进行构建 1、对动态库进行qmake,然后进行构建 2、对应用程序进行qmake&#xff0c;然后进行构建 3、查看构建目录 四、编写脚本 …

一键删除多余内容,批量处理HTML文本,轻松省时!

亲爱的用户们&#xff0c;您是否曾经为了删除HTML文本中的多余内容而烦恼&#xff1f;是否曾经为了批量处理文本而感到困扰&#xff1f;现在&#xff0c;我们为您带来了一款全新的HTML文本处理工具&#xff0c;它可以轻松解决您的问题&#xff01; 首先&#xff0c;在首助编辑…

【python】python基础速通系列2-python程序中的积木块

【组成Python的几个单位】 变量:指向值的名称。或者说变量是一个名称,这个名称指向一个具体的指。比如n=17,就说这个叫做n的变量的值是17。表达式:是值,变量和运算符的组合。如果把变量理解为名词,那么表达式就是把名词连起来的动词形容词。比如:n+25。语句:代码的基本…

Ansys Lumerical|带 1D-2D 光栅的出瞳扩展器

附件下载 联系工作人员获取附件 此示例显示了设置和模拟出瞳扩展器 &#xff08;EPE&#xff09; 的工作流程&#xff0c;EPE 是波导型增强现实 &#xff08;AR&#xff09; 设备的重要组成部分。该工作流程将利用 Lumerical 和 Zemax OpticStudio 之间的动态链接功能 。为了…

MySQL(主从复制)

简述&#xff1a;主从复制&#xff0c;是用来建立一个和主数据库完全一样的数据库环境&#xff0c;称为从数据库&#xff0c;主数据库一般是准实时的 业务数据库、事务处理库&#xff0c;从库做查询库。 复制过程简单的说就是 master 将数据库的改变写入二进制日志&#xff0c…