第29篇:Linux審計系統深度解析:基于OpenEuler 24.03的實踐指南

Linux審計系統深度解析:基于OpenEuler 24.03的實踐指南

文章目錄

  • Linux審計系統深度解析:基于OpenEuler 24.03的實踐指南
    • 一、Linux審計系統核心概念與組件架構
      • 1.1 審計系統核心組件詳解
        • 1. auditd守護進程:日志持久化引擎
        • 2. auditctl命令行工具:審計規則控制器
        • 3. /etc/audit/audit.rules:審計規則配置中心
        • 4. aureport:審計日志分析引擎
        • 5. ausearch:審計日志查詢工具
        • 6. audispd:審計消息分發器
        • 7. autrace:進程追蹤工具
      • 1.2 審計系統工作流程剖析
    • 二、OpenEuler 24.03審計系統配置詳解
      • 2.1 /etc/audit/auditd.conf:審計核心配置文件
      • 2.2 配置優化實踐:企業級場景調整
        • 1. 高可用性配置
        • 2. 性能優化配置
    • 三、審計規則管理:從基礎到高級實踐
      • 3.1 auditctl命令核心用法
        • 1. 規則語法結構
        • 2. 基礎規則示例
          • 案例1:監控關鍵文件修改
          • 案例2:追蹤特定用戶登錄
          • 案例3:審計特權命令執行
      • 3.2 /etc/audit/audit.rules規則持久化
        • 1. 規則文件結構
        • 2. 動態更新規則
      • 3.3 高級規則場景:基于條件的復雜審計
        • 1. 監控特定目錄遞歸變化
        • 2. 進程樹追蹤
        • 3. 網絡活動審計
    • 四、審計日志分析與管理
      • 4.1 aureport:可視化報表生成工具
        • 1. 基礎報表功能
          • 案例1:查看日志時間范圍
          • 案例2:失敗事件統計
          • 案例3:文件訪問失敗統計
        • 2. 高級報表應用
          • 案例1:配置變更追蹤
          • 案例2:加密操作審計
          • 案例3:自定義時間范圍報表
      • 4.2 ausearch:精準日志查詢
        • 1. 基礎查詢語法
        • 2. 查詢案例
          • 案例1:查詢root用戶操作
          • 案例2:追蹤特定終端活動
          • 案例3:按進程ID查詢
          • 案例4:復合條件查詢
      • 4.3 autrace:進程動態追蹤
        • 1. 基本用法
        • 2. 追蹤案例
          • 案例1:追蹤命令執行過程
          • 案例2:追蹤后臺進程
          • 案例3:指定輸出文件
    • 五、OpenEuler審計系統可視化管理
      • 5.1 audit-viewer圖形工具
        • 1. 安裝與啟動
        • 2. 界面功能解析
          • 1. 事件列表視圖
          • 2. 報表生成功能
          • 3. 高級過濾功能
      • 5.2 命令行與圖形界面協同使用
        • 1. 導出命令查詢結果到圖形界面
        • 2. 圖形界面操作轉換為命令
    • 六、審計系統安全運維最佳實踐
      • 6.1 合規性審計配置
        • 1. 等保2.0審計要求實現
        • 2. GDPR合規日志管理
      • 6.2 安全事件響應流程
        • 1. 異常登錄檢測與響應
        • 2. 關鍵文件變更告警
      • 6.3 審計系統自身安全加固
        • 1. 日志文件權限控制
        • 2. 審計服務訪問控制
    • 七、總結與擴展學習
    • 七、總結與擴展學習

一、Linux審計系統核心概念與組件架構

Linux審計系統是操作系統安全架構中的關鍵環節,其通過實時監控系統事件、記錄操作日志并提供審計分析能力,為系統安全合規性管理、入侵檢測和故障排查提供底層支持。在OpenEuler 24.03系統中,審計系統基于標準Linux內核審計框架構建,并針對企業級應用場景進行了優化,形成了一套完整的事件追蹤與分析體系。

1.1 審計系統核心組件詳解

1. auditd守護進程:日志持久化引擎

在OpenEuler 24.03中,auditd作為審計系統的核心守護進程,承擔著將內核生成的審計事件寫入磁盤的關鍵任務。該進程通過與內核審計子系統交互,實時捕獲系統調用、用戶操作、文件訪問等事件,并按照配置規則將其持久化到日志文件中。其特點包括:

  • 異步寫入機制:采用批量寫入策略,減少磁盤I/O開銷,提升系統性能
  • 可配置的日志輪轉策略:支持按文件大小、時間周期自動輪換日志
  • 與systemd深度集成:通過systemctl命令實現服務管理,如systemctl status auditd可查看服務運行狀態
2. auditctl命令行工具:審計規則控制器

auditctl是OpenEuler中控制審計系統的核心命令行工具,用于動態管理審計規則、查詢審計狀態及控制內核審計接口。其功能涵蓋:

  • 規則增刪改查:支持基于文件系統對象、進程、用戶等維度創建審計規則
  • 內核審計參數調整:可修改審計緩沖區大小、日志格式等運行時參數
  • 規則持久化管理:配合audit.rules文件實現規則的開機自動加載
3. /etc/audit/audit.rules:審計規則配置中心

該文件是OpenEuler審計系統的規則倉庫,包含一系列auditctl命令,系統啟動時由auditd自動加載。典型應用場景包括:

  • 系統初始化規則配置:如對關鍵系統文件(/etc/passwd/usr/bin/su)設置訪問審計
  • 動態規則管理模板:通過腳本動態修改此文件實現規則的批量部署
4. aureport:審計日志分析引擎

aureport命令用于從審計日志中提取數據并生成結構化報表,在OpenEuler中支持多種報表類型:

  • 時間范圍報表:按日期維度統計事件分布
  • 失敗事件報表:聚焦認證失敗、文件訪問拒絕等安全相關事件
  • 配置變更報表:追蹤系統配置修改記錄,滿足等保合規要求
5. ausearch:審計日志查詢工具

ausearch提供靈活的日志查詢能力,支持基于以下維度過濾事件:

  • 用戶標識:按UID、用戶名查詢特定用戶的操作記錄
  • 進程標識:通過PID追蹤特定進程的系統調用
  • 事件類型:篩選如文件打開、進程創建等特定類型事件
6. audispd:審計消息分發器

audispd作為審計消息中間件,負責將審計事件轉發至不同目標:

  • 多目標分發:支持同時寫入本地日志、發送至遠程服務器或觸發告警腳本
  • QoS策略:在系統負載過高時可丟棄非關鍵事件,保障核心功能可用性
7. autrace:進程追蹤工具

autrace在OpenEuler中用于動態追蹤進程行為,功能類似strace但更專注于審計場景:

  • 非侵入式追蹤:無需修改目標程序即可捕獲系統調用
  • 日志自動歸檔:追蹤結果直接寫入審計日志,便于后續分析

1.2 審計系統工作流程剖析

OpenEuler審計系統的工作流程可分為四個階段:

  1. 事件捕獲:內核在系統調用、文件操作等關鍵節點觸發審計事件,生成包含進程ID、用戶ID、操作類型等信息的事件記錄
  2. 事件傳遞:內核通過Netlink套接字將事件發送至auditd守護進程
  3. 日志處理auditd根據auditd.conf配置對事件進行格式化、過濾,并寫入/var/log/audit/audit.log
  4. 分析消費aureportausearch等工具對日志進行解析,生成報表或提供查詢接口

二、OpenEuler 24.03審計系統配置詳解

2.1 /etc/audit/auditd.conf:審計核心配置文件

該文件是審計系統的核心配置中心,OpenEuler 24.03的默認配置包含以下關鍵參數:

配置項默認值說明
local_eventsyes是否啟用本地事件收集
write_logsyes是否寫入日志文件
log_file/var/log/audit/audit.log日志文件路徑
log_grouproot日志文件所屬用戶組
log_formatRAW日志格式,RAW為二進制格式,可通過aureport解析
flushINCREMENTAL_ASYNC日志刷新策略,異步增量刷新
freq50異步刷新頻率(每50條記錄刷新一次)
max_log_file8單個日志文件最大大小(MB)
num_logs5保留的日志文件數量
priority_boost4審計進程優先級提升值
dispatcher/sbin/audispd消息分發器路徑
max_log_file_actionROTATE日志文件滿時操作,ROTATE表示輪轉
space_left75磁盤剩余空間閾值(%)
space_left_actionSYSLOG磁盤空間不足時操作,發送系統日志
admin_space_left50管理員空間閾值(%)
admin_space_left_actionSUSPEND管理員空間不足時暫停審計
disk_full_actionSUSPEND磁盤滿時暫停審計
use_libwrapyes是否啟用libwrap訪問控制

2.2 配置優化實踐:企業級場景調整

1. 高可用性配置

在關鍵業務系統中,可調整以下參數提升審計系統穩定性:

# 增加日志緩沖區大小
buffer_size = 8192
# 緊急情況下發送郵件告警
action_mail_acct = security@example.com
# 啟用網絡分發,實現審計日志異地備份
distribute_network = yes
tcp_listen_port = 60 audit
2. 性能優化配置

對于高負載系統,建議優化:

# 提高異步刷新頻率,減少內存占用
freq = 100
# 采用更激進的日志輪轉策略
max_log_file = 16
num_logs = 10
# 使用更高效的日志格式
log_format = JSON

三、審計規則管理:從基礎到高級實踐

3.1 auditctl命令核心用法

1. 規則語法結構

OpenEuler中的auditctl規則遵循以下格式:

auditctl -a action,filter -F field=value -k key
  • action:規則類型,如always(始終審計)、exit(系統調用退出時審計)
  • filter:過濾條件,如entry(系統調用進入時)
  • field:審計字段,如path(文件路徑)、uid(用戶ID)
  • key:規則標識,便于后續管理
2. 基礎規則示例
案例1:監控關鍵文件修改
# 對/etc/sudoers文件的任何修改進行審計
auditctl -w /etc/sudoers -p wa -k sudoers_modify
# 解釋:-w監控路徑,-p指定監控權限(w寫,a屬性修改),-k設置規則鍵
案例2:追蹤特定用戶登錄
# 監控UID為1001的用戶登錄行為
auditctl -a always,exit -F arch=b64 -F euid=1001 -S login -k user_login
# 解釋:-a始終審計,-F指定架構為x86_64,euid為目標用戶,-S監控login系統調用
案例3:審計特權命令執行
# 監控sudo命令的執行
auditctl -a always,exit -F path=/usr/bin/sudo -F perm=x -k sudo_exec
# 解釋:監控sudo文件的執行權限(x)操作

3.2 /etc/audit/audit.rules規則持久化

1. 規則文件結構

OpenEuler啟動時會執行audit.rules中的auditctl命令,典型文件內容如下:

# 清除現有規則
-D# 基礎規則:審計所有系統調用
-a always,exit -F arch=* -S all -k system_call# 安全規則:監控SUID程序修改
-w /usr/bin/chsh -p wa -k suid_modify
-w /usr/bin/chfn -p wa -k suid_modify
-w /usr/bin/passwd -p wa -k suid_modify# 登錄審計規則
-a always,exit -F arch=b64 -F euid=0 -S login -k root_login
2. 動態更新規則

可通過以下命令動態更新規則并寫入文件:

# 添加新規則并立即生效
auditctl -w /etc/ssh/sshd_config -p w -k sshd_config_modify
# 將當前規則保存到文件
auditctl -D > /etc/audit/audit.rules
# 重新加載規則
systemctl restart auditd

3.3 高級規則場景:基于條件的復雜審計

1. 監控特定目錄遞歸變化
# 監控/var/www目錄下所有文件的創建、刪除和修改
auditctl -R /var/www -p war -k webroot_changes
# 解釋:-R遞歸監控目錄,-p指定監控類型(w寫,a屬性,r讀取)
2. 進程樹追蹤
# 監控由bash進程啟動的所有子進程
auditctl -a always,exit -F ppid=$$ -F comm=bash -k bash_subprocess
# 解釋:ppid=$$表示當前shell進程,comm=bash匹配進程名
3. 網絡活動審計
# 審計所有網絡連接建立
auditctl -a always,exit -F arch=b64 -S connect -k network_connect
# 解釋:監控connect系統調用,捕獲網絡連接事件

四、審計日志分析與管理

4.1 aureport:可視化報表生成工具

1. 基礎報表功能
案例1:查看日志時間范圍
aureport -t
# 輸出示例:
Log Time Range Report
=====================
/var/log/audit/audit.log: 2024年05月01日 10:00:00.000 - 2024年05月10日 23:59:59.999
案例2:失敗事件統計
aureport --failed
# 關鍵輸出:
Failed Summary Report
======================
Number of failed logins: 15
Number of failed authentications: 8
案例3:文件訪問失敗統計
aureport -f --failed --summary
# 解釋:-f聚焦文件事件,--failed篩選失敗事件,--summary顯示摘要
2. 高級報表應用
案例1:配置變更追蹤
aureport -c
# 輸出包含配置變更的時間、類型和用戶信息,如:
1. 2024年05月05日 14:30:22 CONFIG_CHANGE root yes 12345
案例2:加密操作審計
aureport -cr
# 解釋:-c顯示配置變更,-r顯示加密事件,用于追蹤密鑰操作
案例3:自定義時間范圍報表
aureport --start "2024-05-05 00:00:00" --end "2024-05-05 23:59:59"
# 精確分析特定時間段內的事件

4.2 ausearch:精準日志查詢

1. 基礎查詢語法
ausearch [options] [--field value]

常用選項:

  • -ui:按用戶ID查詢
  • -tm:按終端設備查詢
  • -p:按進程ID查詢
  • -k:按規則鍵查詢
  • -ts:按時間戳查詢
2. 查詢案例
案例1:查詢root用戶操作
ausearch -ui 0
# 解釋:-ui 0表示查詢UID為0(root)的所有操作
案例2:追蹤特定終端活動
ausearch -tm tty1
# 監控tty1終端上的所有操作
案例3:按進程ID查詢
ausearch -p 1234
# 追蹤PID為1234的進程活動
案例4:復合條件查詢
ausearch -ts "2024-05-05 10:00:00" -k sudo_exec
# 查找2024年5月5日10點后與sudo_exec規則相關的事件

4.3 autrace:進程動態追蹤

1. 基本用法
autrace [options] command [args]

常用選項:

  • -r:將追蹤結果寫入審計日志
  • -p:附加到現有進程
  • -o:指定輸出文件
  • -l:設置日志級別
2. 追蹤案例
案例1:追蹤命令執行過程
autrace -r /bin/ls /etc
# 解釋:-r將ls命令的執行過程寫入審計日志,可通過ausearch -p <pid>查詢
案例2:追蹤后臺進程
autrace -p 5678 -r
# 附加到PID為5678的進程并開始追蹤
案例3:指定輸出文件
autrace -o /tmp/ls_trace.log /bin/ls /root
# 將追蹤結果保存到指定文件,便于離線分析

五、OpenEuler審計系統可視化管理

5.1 audit-viewer圖形工具

1. 安裝與啟動

在OpenEuler 24.03中安裝:

dnf install -y audit-viewer

啟動方式:

audit-viewer
# 或通過菜單路徑:系統 -> 管理 -> 審計日志
2. 界面功能解析
1. 事件列表視圖
  • 按時間順序顯示所有審計事件
  • 支持篩選特定類型事件(如USER_AUTH、SYSCALL)
  • 可查看事件詳細字段:PID、UID、系統調用參數等
2. 報表生成功能
  • 新建報告向導:可按日期、用戶、事件類型分組
  • 自定義報表屬性:設置分組條件、過濾表達式
  • 導出功能:支持將報表導出為CSV、PDF等格式
3. 高級過濾功能
  • 日期過濾器:精確選擇時間范圍
  • 字段過濾器:按UID、PID、系統調用名等字段篩選
  • 正則表達式支持:復雜條件匹配

5.2 命令行與圖形界面協同使用

1. 導出命令查詢結果到圖形界面
ausearch -ui 0 -ts "2024-05-01" > /tmp/root_events.txt
# 在audit-viewer中導入該文件進行可視化分析
2. 圖形界面操作轉換為命令

在audit-viewer中創建的過濾器可通過以下方式轉換為命令:

  1. 設置過濾條件后,點擊"復制為命令"
  2. 生成的ausearch命令可直接在終端執行或保存為腳本

六、審計系統安全運維最佳實踐

6.1 合規性審計配置

1. 等保2.0審計要求實現
# 配置用戶登錄審計
auditctl -a always,exit -F arch=b64 -F euid=0 -S login -k root_login
# 配置用戶權限變更審計
auditctl -w /etc/group -p wa -k group_modify
auditctl -w /etc/passwd -p wa -k passwd_modify
# 配置關鍵目錄審計
auditctl -R /etc/ -p war -k etc_dir_audit
auditctl -R /usr/bin/ -p x -k bin_exec_audit
2. GDPR合規日志管理
# 設置日志保留期為6個月
max_log_file = 100
num_logs = 180
# 敏感數據模糊處理(需配合內核模塊)
filter_sensitive_data = yes

6.2 安全事件響應流程

1. 異常登錄檢測與響應
# 實時監控失敗登錄
aureport --failed | grep -i "failed logins"
# 若發現異常登錄嘗試,執行:
grep "failed login" /var/log/audit/audit.log | awk '{print $11}' | sort | uniq -c
# 封禁頻繁失敗的IP(需配合fail2ban)
2. 關鍵文件變更告警
# 配置文件變更實時通知
auditctl -w /etc/sudoers -p w -k sudoers_alert
# 編寫腳本監控規則鍵事件并發送告警
while true; doausearch -k sudoers_alert -ts recent | mail -s "Sudoers修改告警" admin@example.comsleep 300
done

6.3 審計系統自身安全加固

1. 日志文件權限控制
chmod 600 /var/log/audit/audit.log
chown root:root /var/log/audit/audit.log
# 配置SELinux策略
chcon -t audit_log_t /var/log/audit/audit.log
2. 審計服務訪問控制
# 在/etc/hosts.allow中限制審計服務訪問
audispd: 192.168.1.0/24
# 在firewalld中配置規則
firewall-cmd --add-port=60audit/tcp --permanent
firewall-cmd --reload

七、總結與擴展學習

OpenEuler 24.03的審計系統提供了從事件捕獲、日志管理到分析報表的完整解決方案,通過靈活的規則配置和強大的分析工具,可滿足企業級安全審計需求。建議進一步學習:

  • 內核審計子系統原理(Documentation/audit/內核文檔)
  • OpenEuler安全增強特性(如SELinux與審計系統的集成)
  • 自動化審計腳本開發(利用Python處理審計日志)

on -t audit_log_t /var/log/audit/audit.log


#### 2. 審計服務訪問控制
```bash
# 在/etc/hosts.allow中限制審計服務訪問
audispd: 192.168.1.0/24
# 在firewalld中配置規則
firewall-cmd --add-port=60audit/tcp --permanent
firewall-cmd --reload

七、總結與擴展學習

OpenEuler 24.03的審計系統提供了從事件捕獲、日志管理到分析報表的完整解決方案,通過靈活的規則配置和強大的分析工具,可滿足企業級安全審計需求。建議進一步學習:

  • 內核審計子系統原理(Documentation/audit/內核文檔)
  • OpenEuler安全增強特性(如SELinux與審計系統的集成)
  • 自動化審計腳本開發(利用Python處理審計日志)

通過持續優化審計規則和分析流程,可將審計系統從被動記錄工具轉變為主動安全防御體系的重要環節,為系統安全運營提供堅實的數據支撐。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/912835.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/912835.shtml
英文地址,請注明出處:http://en.pswp.cn/news/912835.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux 啟動過程流程圖--ARM版

以下是ARM版本Linux啟動過程的超詳細樹狀圖&#xff0c;涵蓋硬件上電到應用程序交互的全流程&#xff0c;并包含關鍵函數調用鏈及源碼位置&#xff0c;適用于系統開發與調試場景&#xff1a; ARM Linux啟動全流程&#xff08;含函數調用鏈&#xff09; ARM Linux啟動流程&…

NVMe高速傳輸之擺脫XDMA設計6之系統架構設計

結合目前應用需求&#xff0c;以及前面基礎分析&#xff0c;確定IP應具有如下特色&#xff1a; &#xff08;1&#xff09; 通用性 前端數據采集系統基于 FPGA 開發。 一方面&#xff0c; 設備類型多&#xff0c; 使用的 FPGA型號各不相同&#xff0c; 需要實現的設計能夠在多種…

Mac homebrew 安裝教程

下載github安裝包 https://github.com/Homebrew/brew/releases/tag/4.5.8 下載安裝后 打開 安全里面允許安裝&#xff0c;就可以直接使用了

stm32hal模塊驅動(1)hpdl1414驅動

之前一直想用hpdl1414畫一塊手表&#xff0c;前面pcb測試板畫完沒空調試&#xff0c;最近剛好空出來時間&#xff0c;遂發下驅動。 這里簡單贅述hpdl1414的驅動原理&#xff1a;D0-D6負責數據輸入&#xff08;ascii表后7位&#xff09;&#xff0c;A0,A1負責更改hpdl1414模塊顯…

從代碼學習深度強化學習 - TRPO PyTorch版

文章目錄 前言核心工具函數廣義優勢估計 (Generalized Advantage Estimation, GAE)案例一:TRPO 解決離散動作問題 (CartPole-v1)1. 環境初始化2. 網絡結構定義3. TRPO 智能體實現4. 訓練與可視化5. 訓練主程序與結果案例二:TRPO 解決連續動作問題 (Pendulum-v1)1. 環境與工具…

MySQL 升級到8.4版本的詳細指南

本指南詳細介紹了將 MySQL 升級到 8.4 版本的完整流程、注意事項和操作方法。 一、升級前準備 (3.1 Before You Begin) 在開始升級之前&#xff0c;必須仔細審閱本節信息并執行所有推薦的操作&#xff1a; 理解升級過程&#xff1a;了解升級期間可能發生的情況。請參閱第 3.4…

leetcode427.建立四叉樹

區間x0到x1和區間y0到y1都是左閉右開的 解題基本思路是先判斷當前矩陣是不是全0或全1&#xff0c;如果是就直接返回新建的一個節點值(矩陣的統一值&#xff0c;葉子節點&#xff09;,如果不是那就新建一個節點值&#xff0c;非葉并且左上右上左下右下四個方向上遞歸創建節點 /…

醫學+AI教育實踐!南醫大探索數據挖掘人才培養,清華指導發布AI教育白皮書

教育數字化浪潮正以前所未有的力度重塑高等教育格局。今年4月&#xff0c;為貫徹落實《教育強國建設規劃綱要&#xff08;2024—2035 年&#xff09;》&#xff0c;教育部等九部門印發《關于加快推進教育數字化的意見》&#xff0c;表明將持續推動“人工智能教育”全方位發展&a…

PDF處理控件Spire.PDF系列教程:如何使用C# 拆分 PDF 文件(完整指南)

PDF文件因其高度的跨平臺兼容性和安全穩定的格式特點&#xff0c;廣泛應用于企業文檔管理和電子資料傳輸中。隨著PDF文檔頁數和內容復雜度的增加&#xff0c;拆分PDF成為優化文檔處理流程、提升辦公效率的重要需求。通過編程方式實現PDF拆分&#xff0c;不僅能自動化處理海量文…

文心4.5開源模型部署實踐

文心4.5開源模型部署實踐 使用fastdeploy本地部署 執行命令&#xff1a; python -m fastdeploy.entrypoints.openai.api_server \--model baidu/ERNIE-4.5-21B-A3B-Paddle \--port 8180 \--metrics-port 8181 \--engine-worker-queue-port 8182 \--max-model-len 32768 \--m…

Python迭代器、生成器、閉包和裝飾器(三器一包)

return、continue、break區別&#xff1a; return只能用在函數里面&#xff0c;表示從函數中返回&#xff0c;函數體內的后續任何代碼都不執行continue只是跳出當前循環&#xff0c;進入下一循環break只是跳出全部循環&#xff0c;如果循環后面還有代碼&#xff0c;會進行執行…

【Java】Maven

一.Maven簡介 Maven的產生主要是為了解決Java項目中的兩個問題&#xff1a; 1.依賴管理&#xff1a; 傳統 Java 項目在引入第三方庫時&#xff0c;需要手動下載 JAR 包并維護復雜的依賴關系。Maven 提供了統一的依賴管理機制&#xff0c;通過簡單的配置即可自動從倉庫下載并引…

人臉活體識別3:C/C++實現人臉眨眼 張嘴 點頭 搖頭識別(可實時檢測)

人臉活體識別3&#xff1a;C/C實現人臉眨眼 張嘴 點頭 搖頭識別(可實時檢測) 目錄 人臉活體識別3&#xff1a;C/C實現人臉眨眼 張嘴 點頭 搖頭識別(可實時檢測) 1. 前言 2.人臉活體識別方法 &#xff08;1&#xff09;基于人臉動作的檢測?? &#xff08;2&#xff09;?…

【ABAP】 從無到有 新建一個Webdynpro程序

、新建WDA 可從SE80在web dynpro 組件下 創建 并按例以下操作 2、插入窗口 3、相關功能 3-1、展示消息 DATA:lo_api_controller TYPE REF TO if_wd_controller,lo_message_handler TYPE REF TO if_wd_message_manager.lo_api_controller ? wd_this->wd_get_api( ).lo_mess…

ALV常用設置(更新中一)

之前設置了checkbox&#xff0c;但是觸發不了單擊事件&#xff0c;且alv自帶的復選&#xff0c;鼠標移動單擊別處就會自動取消。 **增加多選框到fieldcat&#xff0c;**這一點很重要&#xff0c;然后設置 IF gs_fcat-fieldname sel.gs_fcat-checkbox X. gs_fcat-edit X. …

NumPy 或 PyTorch/TensorFlow 中的張量理解

(2, 2, 3) 形狀的 3D 數組&#xff08;或張量&#xff09;的結構。 個人理解&#xff1a; 2個2維數組&#xff08;張量&#xff09;&#xff0c;2維數組&#xff08;張量&#xff09;里面有2個1維向量&#xff08;張量&#xff09;&#xff0c;1維向量&#xff08;張量&#x…

Linux環境下使用 C++ 與 OpenCV 實現 ONNX 分類模型推理

實驗環境&#xff1a;Ubuntu 20.0 推理模型&#xff1a;ONNX分類模型 1. 安裝依賴項 首先是需要安裝依賴庫&#xff0c;如g&#xff0c;cmake等&#xff0c;如果已經安裝的話可以忽略 sudo apt install -y g sudo apt install -y cmake sudo apt install -y make sudo apt i…

AJAX 安裝使用教程

一、AJAX 簡介 AJAX&#xff08;Asynchronous JavaScript and XML&#xff09;是一種在無需重新加載整個網頁的情況下&#xff0c;能夠與服務器交換數據并更新部分網頁內容的技術。它不是一種新語言&#xff0c;而是使用現有的標準組合&#xff1a;JavaScript XMLHttpRequest…

【牛客算法】牛客網編程題解:小紅拼圖

一、題目介紹 1.1. 題目鏈接 &#xff1a;小紅拼圖 https://www.nowcoder.com/questionTerminal/08b54686f0d14bd784d9d148c68a268a 1.2 題目介紹 小紅正在玩一個拼圖游戲&#xff0c;她有一些完全相同的拼圖組件&#xff1a; 小紅準備用這些組件來拼成一些圖案。這些組件可…

買賣股票的最佳時機--js 算法

一、買賣股票的最佳時機 給定一個數組 prices ,它的第 i 個元素 prices[i] 表示一支給定股票第 i 天的價格。你只能選擇 某一天 買入這只股票,并選擇在 未來的某一個不同的日子 賣出該股票。設計一個算法來計算你所能獲取的最大利潤。返回你可以從這筆交易中獲取的最大利潤。…