当前位置: 首页 > news >正文

【Linux】安全审计-audit

文章目录

  • 一、audit简介
  • 二、开启auditd服务
  • 三、相关文件
  • 四、审计规则
  • 五、审计日志查询及分析
  • 附录1:auditctl -h
  • 附录2:systemcall 类型

参考文章:

1、安全-linux audit审计使用入门
2、audit详细使用配置
3、Linux-有哪些常见的System Call?

写在前面:
1.写博客,做日常工作记录,好记性不如烂笔头嘛;
2.内容非原创,参考的文章已上文列出;
3.如有错误,欢迎指正。

一、audit简介

audit是Linux内核提供的一种审计机制,由于audit是内核提供的,因此,在使用audit的过程中就包含内核空间和用户空间部分

auditctl:用户态程序,用于审计规则配置和配置变更
kaudit:内核空间程序,根据配置好的审计规则记录发生的事件
auditd:用户态程序,通过netlink获取审计日志

通常的使用流程

用户通过auditctl配置审计规则
内核的kauditd程序获取到审计规则后,记录对应的审计日志
用户态的auditd获取审计日志并写入日志文件

二、开启auditd服务

systemctl status auditd.service
systemctl start auditd.service

在这里插入图片描述

三、相关文件

# 1.应用配置文件
/etc/audit/auditd.conf
# 2.添加规则的文件
/etc/audit/rules.d/audit.rules
# 3.日志所在目录
/var/log/audit/

四、审计规则

  1. 控制规则:用于更改审计系统本身的配置和设置。
auditctl -b 8192	# 配置buffer大小为8M
auditctl -e 0
auditctl -f 2
auditctl -s
  1. 文件系统规则:审核对特定文件或目录的任何类型的访问(比较常见)
# 项太多了,举例一个,监控针对/etc/passwd文件的读、写、执行和属性改变,关键字为change_passwd
auditctl -w /etc/passwd -p rwxa -k change_passwd
# 如果要查询,
ausearch -i -k change_passwd

详见附录 auditctl -h

  1. 系统调用规则:用于监视由任何进程或特定用户进行的系统调用
# -S 设置要监控的系统调用名或者系统调用号,下述命令仅作举例
需要补充例子

同样:详见附录 auditctl -h

五、审计日志查询及分析

# 仅列举比较常用的方式,-k后面跟创建审计规则时设置的关键字
ausearch -i -k ***

审计日志类似:(各个系统可不同)
在这里插入图片描述
审计日志-字段分析

  • type:audit消息类型,消息类型有100多种(具体查看请点击:audit消息类型)
    比较常见有SYSCALL:代表这条记录是向内核的系统调用触发产生的.

  • msg:消息的ID, 它有两个部分组成, 分号之前的是Unix的时间戳,分号之后的是真正的event ID(同一个应用程序的相同system call拥有相同的event ID, 同一个应用的不同system call则不同。)

  • arch: 调用system call的CPU构架

  • syscall:system call的类型(可使用ausyscall --dump来显示所有的系统调用)

  • success:system call是成功或者失败

  • comm: 出现在任务列表中,应用程序的名称。

  • exe: 二进制程序的解析路径。

  • ses: 用户登录的session ID.

  • auid: audit ID, 针对某一用户,一个进程会被分配一个audit ID, 该audit ID会被传递给子进程,尽管在系统中用户切换,该audit ID将始终保持一致。 这样我们可以针对对某一用户进行trace。

  • a0 to a3: 系统调用的前四个参数的数字化,可以通过ausearch解码查看

  • items: 传递到应用程序的字符串数量

  • ppid:父进程的PID

  • pid:该进程的PID

  • uid: user ID。

  • gid: group ID。

  • euid, suid, fsuid: Effective user ID, set user ID, and file system user ID.

  • egid, sgid, fsgid: Effective group ID, set group ID, and file system group ID.

  • tty: 应用程序开启的终端,这种情况下pseudo-terminal used in an SSH session.

附录1:auditctl -h

[auditadm@localhost ~]$ auditctl -h
usage: auditctl [options]-a <l,a>                          Append rule to end of <l>ist with <a>ction-A <l,a>                          Add rule at beginning of <l>ist with <a>ction-b <backlog>                      Set max number of outstanding audit buffersallowed Default=64-c                                Continue through errors in rules-C f=f                            Compare collected fields if available:Field name, operator(=,!=), field name-d <l,a>                          Delete rule from <l>ist with <a>ctionl=task,exit,user,excludea=never,always-D                                Delete all rules and watches-e [0..2]                         Set enabled flag-f [0..2]                         Set failure flag0=silent 1=printk 2=panic-F f=v                            Build rule: field name, operator(=,!=,<,>,<=,>=,&,&=) value-h                                Help-i                                Ignore errors when reading rules from file-k <key>                          Set filter key on audit rule-l                                List rules-m text                           Send a user-space message-p [r|w|x|a]                      Set permissions filter on watchr=read, w=write, x=execute, a=attribute-q <mount,subtree>                make subtree part of mount point's dir watches-r <rate>                         Set limit in messages/sec (0=none)-R <file>                         read rules from file-s                                Report status-S syscall                        Build rule: syscall name or number--signal <signal>                 Send the specified signal to the daemon    -t                                Trim directory watches-v                                Version-w <path>                         Insert watch at <path>-W <path>                         Remove watch at <path>--loginuid-immutable              Make loginuids unchangeable once set--backlog_wait_time               Set the kernel backlog_wait_time--reset-lost                      Reset the lost record counter

附录2:systemcall 类型

网上查询的,好多说是看这个文件https://github.com/torvalds/linux/blob/master/arch/sh/include/asm/unistd.h

# 不同系统间存在差距
# 下文只做简单举例,编号代表 类型值 
$ ausyscall --dump
Using aarch64 syscall table:
0	io_setup
1	io_destroy
2	io_submit
3	io_cancel
4	io_getevents
5	setxattr
6	lsetxattr
7	fsetxattr
8	getxattr
9	lgetxattr
10	fgetxattr
11	listxattr
12	llistxattr
13	flistxattr
14	removexattr
15	lremovexattr
16	fremovexattr
17	getcwd
18	lookup_dcookie
19	eventfd2
20	epoll_create1
21	epoll_ctl
22	epoll_pwait
23	dup
24	dup3
25	fcntl
26	inotify_init1
27	inotify_add_watch
28	inotify_rm_watch
29	ioctl
30	ioprio_set
31	ioprio_get
32	flock
33	mknodat
34	mkdirat
35	unlinkat
36	symlinkat
37	linkat
38	renameat
39	umount2
40	mount
41	pivot_root
42	nfsservctl
43	statfs
44	fstatfs
45	truncate
46	ftruncate
47	fallocate
48	faccessat
49	chdir
50	fchdir
51	chroot
52	fchmod
53	fchmodat
54	fchownat
55	fchown
56	openat
57	close
58	vhangup
59	pipe2
60	quotactl
61	getdents
62	lseek
63	read
64	write
65	readv
66	writev
67	pread
68	pwrite
69	preadv
70	pwritev
71	sendfile
72	pselect6
73	ppoll
74	signalfd4
75	vmsplice
76	splice
77	tee
78	readlinkat
79	newfstatat
80	newfstat
81	sync
82	fsync
83	fdatasync
84	sync_file_range
85	timerfd_create
86	timerfd_settime
87	timerfd_gettime
88	utimensat
89	acct
90	capget
91	capset
92	personality
93	exit
94	exit_group
95	waitid
96	set_tid_address
97	unshare
98	futex
99	set_robust_list
100	get_robust_list
101	nanosleep
102	getitimer
103	setitimer
104	kexec_load
105	init_module
106	delete_module
107	timer_create
108	timer_gettime
109	timer_getoverrun
110	timer_settime
111	timer_delete
112	clock_settime
113	clock_gettime
114	clock_getres
115	clock_nanosleep
116	syslog
117	ptrace
118	sched_setparam
119	sched_setscheduler
120	sched_getscheduler
121	sched_getparam
122	sched_setaffinity
123	sched_getaffinity
124	sched_yield
125	sched_get_priority_max
126	sched_get_priority_min
127	sched_rr_get_interval
128	restart_syscall
129	kill
130	tkill
131	tgkill
132	sigaltstack
133	rt_sigsuspend
134	rt_sigaction
135	rt_sigprocmask
136	rt_sigpending
137	rt_sigtimedwait
138	rt_sigqueueinfo
139	rt_sigreturn
140	setpriority
141	getpriority
142	reboot
143	setregid
144	setgid
145	setreuid
146	setuid
147	setresuid
148	getresuid
149	setresgid
150	getresgid
151	setfsuid
152	setfsgid
153	times
154	setpgid
155	getpgid
156	getsid
157	setsid
158	getgroups
159	setgroups
160	uname
161	sethostname
162	setdomainname
163	getrlimit
164	setrlimit
165	getrusage
166	umask
167	prctl
168	getcpu
169	gettimeofday
170	settimeofday
171	adjtimex
172	getpid
173	getppid
174	getuid
175	geteuid
176	getgid
177	getegid
178	gettid
179	sysinfo
180	mq_open
181	mq_unlink
182	mq_timedsend
183	mq_timedreceive
184	mq_notify
185	mq_getsetattr
186	msgget
187	msgctl
188	msgrcv
189	msgsnd
190	semget
191	semctl
192	semtimedop
193	semop
194	shmget
195	shmctl
196	shmat
197	shmdt
198	socket
199	socketpair
200	bind
201	listen
202	accept
203	connect
204	getsockname
205	getpeername
206	sendto
207	recvfrom
208	setsockopt
209	getsockopt
210	shutdown
211	sendmsg
212	recvmsg
213	readahead
214	brk
215	munmap
216	mremap
217	add_key
218	request_key
219	keyctl
220	clone
221	execve
222	mmap
223	fadvise64
224	swapon
225	swapoff
226	mprotect
227	msync
228	mlock
229	munlock
230	mlockall
231	munlockall
232	mincore
233	madvise
234	remap_file_pages
235	mbind
236	get_mempolicy
237	set_mempolicy
238	migrate_pages
239	move_pages
240	rt_tgsigqueueinfo
241	perf_event_open
242	accept4
243	recvmmsg
260	wait4
261	prlimit64
262	fanotify_init
263	fanotify_mark
264	name_to_handle_at
265	open_by_handle_at
266	clock_adjtime
267	syncfs
268	setns
269	sendmmsg
270	process_vm_readv
271	process_vm_writev
272	kcmp
273	finit_module
274	sched_setattr
275	sched_getattr
276	renameat2
277	seccomp
278	getrandom
279	memfd_create
280	bpf
281	execveat
282	userfaultfd
283	membarrier
284	mlock2
285	copy_file_range
286	preadv2
287	pwritev2
288	pkey_mprotect
289	pkey_alloc
290	pkey_free
291	statx
292	io_pgetevents
293	rseq
294	kexec_file_load
424	pidfd_send_signal
425	io_uring_setup
426	io_uring_enter
427	io_uring_register
428	open_tree
429	move_mount
430	fsopen
431	fsconfig
432	fsmount
433	fspick
434	pidfd_open
435	clone3
1024	open
1025	link
1026	unlink
1027	mknod
1028	chmod
1029	chown
1030	mkdir
1031	rmdir
1032	lchown
1033	access
1034	rename
1035	readlink
1036	symlink
1037	utimes
1038	stat64
1039	lstat64
1040	pipe
1041	dup2
1042	epoll_create
1043	inotify_init
1044	eventfd
1045	signalfd
1049	newstat
1050	newlstat
1059	alarm
1060	getpgrp
1061	pause
1062	time
1063	utime
1064	creat
1066	futimesat
1067	select
1068	poll
1069	epoll_wait
1070	ustat
1071	vfork
1073	recv
1074	send
1075	bdflush
1076	oldumount
1077	uselib
1078	sysctl
1079	fork

相关文章:

【Linux】安全审计-audit

文章目录 一、audit简介二、开启auditd服务三、相关文件四、审计规则五、审计日志查询及分析附录1&#xff1a;auditctl -h附录2&#xff1a;systemcall 类型 参考文章&#xff1a; 1、安全-linux audit审计使用入门 2、audit详细使用配置 3、Linux-有哪些常见的System Call&a…...

Linux 之查看标准错误码工具

目录 1. Linux 之查看标准错误码工具 1. Linux 之查看标准错误码工具 $ sudo apt install moreutils$ errno -l EPERM 1 不允许的操作 ENOENT 2 没有那个文件或目录 ESRCH 3 没有那个进程 EINTR 4 被中断的系统调用 EIO 5 输入/输出错误 ENXIO 6 没有那个设备或地址 E2BIG 7 参…...

Git企业开发级讲解(五)

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、bug 分⽀二、删除临时分支三、小结 一、bug 分⽀ 假如我们现在正在 dev2 分⽀上进⾏开发…...

目录自动清洗

文章目录 前言一、需求分析二、操作步骤详解&#xff08;标准章节&#xff09;1. 提取文章目录2. 更改保存目录.txt3. 二级标题前面加4个空格4. 在章字和节字后面添加一个空格5. 在页码前面加上>符号6. 代码完全体 三、进阶一&#xff08;有章无节小数二级标题&#xff09;1…...

c++实现Any类,让一个类型指向其他任意类型

在c中&#xff0c;对于以上任务&#xff0c;容易想到的是一个基类类型指向其所有派生类。因此设计一个Any类&#xff0c;其里面有一个成员基类Base类&#xff0c;其派生类可以是数据date&#xff0c;但是你不知道date到底是什么东西&#xff0c;所以需要使用模版。所以其结构为…...

os.path.join函数用法

os.path.join()是Python中用于拼接文件路径的函数&#xff0c;它可以将多个字符串拼接成一个路径&#xff0c;并且会根据操作系统的规则自动使用合适的路径分隔符。 注&#xff1a;Linux用的是/分隔符&#xff0c;而Windows才用的是\。 该函数属于os.path模块&#xff0c;因此在…...

vscode Prettier配置

常用配置项&#xff1a; .prettierrc.json 是 Prettier 格式化工具的配置文件 {"printWidth": 200, // 指定行的最大长度"tabWidth": 2, // 指定缩进的空格数"useTabs": false, // 是否使用制表符进行缩进&#xff0c;默认为 false"singl…...

MLC-LLM 支持RWKV-5推理以及对RWKV-5的一些思考

自从2023年3月左右&#xff0c;chatgpt火热起来之后&#xff0c;我把关注的一些知乎帖子都记录到了这个markdown里面&#xff0c;&#xff1a;https://github.com/BBuf/how-to-optim-algorithm-in-cuda/tree/master/large-language-model-note &#xff0c;从2023年3月左右到现…...

WPF中行为与触发器的概念及用法

完全来源于十月的寒流&#xff0c;感谢大佬讲解 一、行为 (Behaviors) behaviors的简单测试 <Window x:Class"Test_05.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winf…...

2023-2024华为ICT大赛-计算赛道-广东省省赛初赛-高职组-部分赛题分析【2023.11.18】

2023-2024华为ICT大赛 计算赛道 广东省 省赛 初赛 高职组 部分赛题 分析【2023.11.18】 文章目录 单选题tpcds模式中存在表customer&#xff0c;不能成功删除tpcds模式是&#xff08; &#xff09;以下哪个函数将圆转换成矩形&#xff08; &#xff09;下列哪个选项表示依赖该D…...

『 MySQL数据库 』数据库之表的约束

文章目录 前言 &#x1f4bb;空属性约束(非空约束) &#x1f516;default约束(默认值约束,缺省) &#x1f516;列描述comment &#x1f516;数字类型长度zerofill &#x1f516;主键primary key &#x1f516;&#x1f4cd; 追加主键 &#x1f4cd;&#x1f4cd; 删除主键 &…...

flink 8081 web页面无法被局域网内其他机器访问

实现 http://localhost:8081/#/overview 可以被局域网其他机器访问...

零基础安装分布式数据服务注册系统

一、先安装VM虚拟机&#xff0c;安装最新的ubuntu22系统&#xff0c; 先安装mysql&#xff0c; sudo apt install mysql-server sudo mysql_secure_installation 根据自己需求选择 密码安全级别时&#xff0c;选择n 删除匿名用户&#xff1f;&#xff08;按y|Y表示是&…...

2023最新最全【OpenMV】 入门教程

1. 什么是OpenMV OpenMV 是一个开源&#xff0c;低成本&#xff0c;功能强大的 机器视觉模块。 OpenMV上的机器视觉算法包括 寻找色块、人脸检测、眼球跟踪、边缘检测、标志跟踪 等。 以STM32F427CPU为核心&#xff0c;集成了OV7725摄像头芯片&#xff0c;在小巧的硬件模块上&a…...

【Java并发编程三】线程的基本使用一

基本使用一 将类继承Runnable&#xff0c;创建Thread&#xff0c;然后调用Thread的start方法启动&#xff1a; package myTest;public class myTest implements Runnable {public static void main(String[] args) throws InterruptedException {myTest test new myTest();Th…...

企业邮箱认证指南:安全与高效的邮箱认证方法

企业邮箱是专门为企业提供的电子邮件服务&#xff0c;安全性和专业性更高。在开始使用企业邮箱之前&#xff0c;很多人会有一些问题&#xff0c;比如企业邮箱需要认证吗、如何开通企业邮箱&#xff0c;以及哪款企业邮箱好。 1、企业邮箱在使用前需要认证吗&#xff1f; 答案是肯…...

Django(八、如何开启事务、介绍长见的字段类型和参数)

文章目录 ORM事务操作开启事务 常见的字段类型和参数ORM还支持用户自定义字段类型ORM常用字段参数外键相关参数 ORM事务操作 引入事务 1.事务的四大特性原子性、一致性、隔离性、持久性 2.相关SQL关键字start transaction;rollback;commit;savapoint; 3.相关重要概念脏读、幻…...

机器学习第5天:多项式回归与学习曲线

文章目录 多项式回归介绍 方法与代码 方法描述 分离多项式 学习曲线的作用 场景 学习曲线介绍 欠拟合曲线 示例 结论 过拟合曲线 示例 ​结论 多项式回归介绍 当数据不是线性时我们该如何处理呢&#xff0c;考虑如下数据 import matplotlib.pyplot as plt impo…...

MSYS2介绍及工具安装

0 Preface/Foreword 1 MSYS2 官网&#xff1a;MSYS2...

Swift开发中:非逃逸闭包、逃逸闭包、自动闭包的区别

1. 非逃逸闭包&#xff08;Non-Escaping Closure&#xff09; 定义&#xff1a;默认情况下&#xff0c;在 Swift 中闭包是非逃逸的。这意味着闭包在函数结束之前被调用并完成&#xff0c;它不会“逃逸”出函数的范围。内存管理&#xff1a;由于闭包在函数返回前被调用&#xf…...

栈结构应用-进制转换-辗转相除法

// 定义类class Stack{// #items [] 前边加#变为私有 外部不能随意修改 内部使用也要加#items []pop(){return this.items.pop()}push(data){this.items.push(data)}peek(){return this.items[this.items.length-1]}isEmpty(){return this.items.length 0}size(){return th…...

【Azure 架构师学习笔记】-Azure Storage Account(6)- File Layer

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Storage Account】系列。 接上文 【Azure 架构师学习笔记】-Azure Storage Account&#xff08;5&#xff09;- Data Lake layers 前言 上一文介绍了存储帐户的概述&#xff0c;还有container的一些配置&#xff0c;在…...

idea 环境搭建及运行java后端源码

1、 idea 历史版本下载及安装 建议下载和我一样的版本&#xff0c;2020.3 https://www.jetbrains.com/idea/download/other.html&#xff0c;idea分为专业版本&#xff08;Ultimate&#xff09;和社区版本&#xff08;Community&#xff09;&#xff0c;前期可以下载专业版本…...

掌握Shell:从新手到编程大师的Linux之旅

1 shell介绍 1.1 shell脚本的意义 1.记录命令执行的过程和执行逻辑&#xff0c;以便以后重复执行 2.脚本可以批量处理主机 3.脚本可以定时处理主机 1.2 脚本的创建 #!/bin/bash # 运行脚本时候执行的环境1.3 自动添加脚本说明信息 /etc/vimrc # vim主配置文件 ~/.vimrc # 该…...

有重复元素的快速排序

当涉及到处理重复元素的快速排序时&#xff0c;可以使用荷兰国旗问题的方法&#xff0c;也就是三路划分。下面是使用 Java 实现的示例代码&#xff1a; import java.util.Arrays;public class QuickSort {public static void quickSort(int[] arr, int low, int high) {if (lo…...

Bert浅谈

优点 首先&#xff0c;bert的创新点在于利用了双向transformer&#xff0c;这就跟openai的gpt有区别&#xff0c;gpt是采用单向的transformer&#xff0c;而作者认为双向transformer更能够融合上下文的信息。这里双向和单向的区别在于&#xff0c;单向只跟当前位置之前的tocke…...

产品运营的场景和运营策略

一、启动屏 1&#xff0e;概念 启动屏&#xff0c;特指 APP 产品启动时即显示的界面&#xff0c;这个界面一般会停留几秒钟时间&#xff0c;在这个时间内 APP 会在后台加载服务框架、启动各种服务 SDK 、获取用户地理位置、判断有无新版本、判断用户账户状态以及其他系统级别的…...

C#异常捕获try catch详细介绍

在C#中&#xff0c;异常处理是通过try、catch、finally和throw语句来实现的&#xff0c;它们提供了一种结构化和可预测的方法来处理运行时错误。 C#异常基本用法 try块 异常处理以try块开始&#xff0c;try块包含可能会引发异常的代码。如果在try块中的代码执行过程中发生了…...

切换阿里云ES方式及故障应急处理方案

一、阿里云es服务相关问题及答解 1.1 ES7.10扩容节点时间 增加节点数量需要节点拉起和数据Rebalance两步,拉起时间7.16及以上的新版本大概10分钟以内,7.16以前大概一小时,数据迁移的时间就看数据量了,一般整体在半小时以内 (需进行相关测试验证) 1.2 ES7.10扩容数据节点…...

CTFhub-RCE-过滤空格

1. 查看当前目录&#xff1a;127.0.0.1|ls 2. 查看 flag_890277429145.php 127.0.0.1|cat flag_890277429145.php 根据题目可以知道空格被过滤掉了 3.空格可以用以下字符代替&#xff1a; < 、>、<>、%20(space)、%09(tab)、$IFS$9、 ${IFS}、$IFS等 $IFS在li…...

无需添加udid,ios企业证书的自助生成方法

我们开发uniapp的app的时候&#xff0c;需要苹果证书去打包。 假如申请的是个人或company类型的苹果开发者账号&#xff0c;必须上架才能安装&#xff0c;异常的麻烦&#xff0c;但是有一些app&#xff0c;比如企业内部使用的app&#xff0c;是不需要上架苹果应用市场的。 假…...

【PTA题目】6-20 使用函数判断完全平方数 分数 10

6-20 使用函数判断完全平方数 分数 10 全屏浏览题目 切换布局 作者 张高燕 单位 浙大城市学院 本题要求实现一个判断整数是否为完全平方数的简单函数。 函数接口定义&#xff1a; int IsSquare( int n ); 其中n是用户传入的参数&#xff0c;在长整型范围内。如果n是完全…...

Nas搭建webdav服务器并同步Zotero科研文献

无需云盘&#xff0c;不限流量实现Zotero跨平台同步&#xff1a;内网穿透私有WebDAV服务器 文章目录 无需云盘&#xff0c;不限流量实现Zotero跨平台同步&#xff1a;内网穿透私有WebDAV服务器一、Zotero安装教程二、群晖NAS WebDAV设置三、Zotero设置四、使用公网地址同步Zote…...

一句话总结敏捷实践中不同方法

敏捷实践是指一组优先考虑灵活性、协作和客户满意度的软件开发和项目管理原则和方法。 不同方法论的敏捷实践&#xff1a; 1、敏捷&#xff1a; Sprints&#xff1a;限时迭代&#xff08;通常 2-4 周&#xff09;&#xff0c;在此期间创建潜在的可交付产品增量。每日站立会议…...

【数据结构】线段树(点修区查)

数据结构-线段树&#xff08;点修区查&#xff09; 前置知识 分治递归二叉树 思路 我们需要维护一个支持单点修改&#xff0c;区间查询的数据结构&#xff0c;并且要求在线&#xff0c;一般使用线段树解决。 线段树是一个二叉树形的数据结构。 线段树的思想很简单&#xff0c…...

Ansys Lumerical | 用于增强现实系统的表面浮雕光栅

在本示例中&#xff0c;我们使用 RCWA 求解器设计了一个斜面浮雕光栅 (SRG)&#xff0c;它将用于将光线耦合到单色增强现实 (AR) 系统的波导中。光栅的几何形状经过优化&#xff0c;可将正常入射光导入-1 光栅阶次。 然后我们将光栅特性导出为 Lumerical Sub-Wavelength Model …...

QT day3作业

1.思维导图 2、 完善对话框&#xff0c;点击登录对话框&#xff0c;如果账号和密码匹配&#xff0c;则弹出信息对话框&#xff0c;给出提示”登录成功“&#xff0c;提供一个Ok按钮&#xff0c;用户点击Ok后&#xff0c;关闭登录界面&#xff0c;跳转到其他界面 如果账号和密…...

【Ubuntu】设置永不息屏与安装 dconf-editor

方式一、GUI界面进行设置 No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.6 LTS Release: 20.04 Codename: focal打开 Ubuntu 桌面环境的设置菜单。你可以通过点击屏幕右上角的系统菜单&#xff0c;然后选择设置。在设置菜单中&#xff0c;…...

gRPC 的原理 介绍带你从头了解gRPC

gRPC 的原理 什么是gRPC gRPC的官方介绍是&#xff1a;gRPC是一个现代的、高性能、开源的和语言无关的通用 RPC 框架&#xff0c;基于 HTTP2 协议设计&#xff0c;序列化使用PB(Protocol Buffer)&#xff0c;PB 是一种语言无关的高性能序列化框架&#xff0c;基于 HTTP2PB 保…...

Apriori算法

Apriori算法由R. Agrawal和R. Srikant于1994年在数据集中寻找布尔关联规则的频繁项集。该算法的名称是Apriori&#xff0c;因为它使用了频繁项集属性的先验知识。我们应用迭代方法或逐层搜索&#xff0c;其中k-频繁项集用于找到k1个项集。 为了提高频繁项集逐层生成的效率&…...

肖sir__linux讲解(2.1)

linux命令 cp 复制命令 a、cp 原文件名称 新文 件名称&#xff08;不存在的文件&#xff09; 案例&#xff1a;cp a k 截图&#xff1a; b.cp 原文件名称 原有文 件名称&#xff08;存在的文件&#xff09; 案例:cp a b 截图&#xff1a; c、cp 指定路径复制 格式&#xff…...

The ultimate UI kit and design system for Figma 组件库下载

Untitled UI 是世界上最大的 Figma UI 套件和设计系统。可以启动任何项目&#xff0c;为您节省数千小时&#xff0c;并祝您升级为专业设计师。 采用 100% 自动布局 5.0、变量、智能变体和 WCAG 可访问性精心制作。 900全局样式、变量&#xff1a;超级智能的全局颜色、排版和效…...

Selenium——利用input标签上传文件

Selenium利用input标签上传文件 完整流程 打开文件上传页面选择要上传的文件点击上传按钮确认文件上传成功介绍怎么方便的获取对应元素的Xpath或者Css 简单介绍 在使用Selenium进行浏览器自动化测试时&#xff0c;文件上传是一个常见的需求。而 标签就是实现文件上传功能的…...

C++初阶 日期类的实现(下)

目录 一、输入输出(>>,<<)重载的实现 1.1初始版 1.2友元并修改 1.2.1简单介绍下友元 1.2.2修改 1.3>>重载 二、条件判断操作符的实现 2.1操作符的实现 2.2!操作符的实现 2.3>操作符的实现 2.4>,<,<操作符的实现 三、日期-日期的实现 …...

大师学SwiftUI第16章 - UIKit框架集成

其它相关内容请见​​虚拟现实(VR)/增强现实(AR)&visionOS开发学习笔记​​ SwiftUI是一套新框架&#xff0c;因此并没有包含我们构建专业应用所需的所有工具。这意味着我们会需要求助于UIKit&#xff08;移动设备&#xff09;和AppKit&#xff08;Mac电脑&#xff09;等原…...

7.docker运行redis容器

1.准备redis的配置文件 从上一篇运行MySQL容器我们知道&#xff0c;需要给容器挂载数据卷&#xff0c;来持久化数据和配置&#xff0c;相应的redis也不例外。这里我们以redis6.0.8为例来实际说明下。 1.1 查找redis的配置文件redis.conf 下面这个网址有各种版本的配置文件供…...

unity教程

前言 伴随游戏行业的兴起&#xff0c;unity引擎的使用越来越普遍&#xff0c;本文章主要记录博主本人入门unity的相关记录大部分依赖siki学院进行整理。12 一、认识unity引擎&#xff1f; 1、Unity相关信息&#xff1a; Unity的诞生&#xff1a;https://www.jianshu.com/p/550…...

未定义与 ‘double‘ 类型的输入参数相对应的函数 ‘Link‘

报错 检查对函数"Link"得调用中是否缺失参数或参数数据类型不正确。 未定义与"double"类型的输入参数相对应的函数"Link"。 问题描述 网上搜了搜一般说是toolbox没有下载导致的&#xff0c;相当于调用的包本地没有。 但是我看看了 Robotics…...

为什么Transformer模型中使用Layer Normalization(Layer Norm)而不是Batch Normalization(BN)

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…...

Vite - 配置 - 文件路径别名的配置

为什么要配置别名 别名的配置&#xff0c;主要作用是为了缩短代码中的导入路径。例如有如下的项目目录&#xff1a; project-name| -- src| -- a| --b| --c| --d| --e| -- abc.png| -- index.html| -- main.js如果想在 main.js 文件中使用 abc.png ,则使用的路径是 &#xff1…...