文科小白學習Linux系統之安全管理

目錄

前言

一、SELinux安全上下文

1、SELinux 簡介

2、基礎操作命令

1. 查看SELinux狀態

2. 切換工作模式

3、安全上下文(Security Context)

1. 查看上下文

2. 修改上下文

chcon命令

semanage 命令

4、SELinux布爾值(Booleans)

5、日志分析與故障排除

1. 查看SELinux日志

2.生成解決方案建議

6、常見問題與解決方案

場景1:Web服務器無法訪問文件

場景2:服務無法綁定非標準端口

7、注意事項

二、Linux防火墻-Firewalld

1、 概述

2、 Linux防火墻

防火墻結構

firewalld防火墻

區域分類

區域功能

firewall-cmd命令用法

結語


前言

學習Linux系統,安全管理為重中之重,保護好系統的安全,就是保護數據的安全,今天主要是SELinux系統講解以及Linux系統防火墻firewall的命令運用。

一、SELinux安全上下文

1、SELinux 簡介

  1. 是什么? SELinux(Security-Enhanced Linux)是Linux內核的強制訪問控制(MAC)安全子系統,提供更細粒度的權限控制,防止進程或用戶越權操作。

  2. 核心思想

    • 最小權限原則:進程/用戶只能訪問其明確需要的資源。

    • 基于標簽的訪問控制:所有資源(文件、端口、進程)被賦予安全上下文(Security Context)。

  3. 工作模式

模式描述
Enforcing強制執行策略,拒絕非法操作并記錄日志。
setenforce 0# 切換到Permissive模式
setenforce 1# 切換到Enforcing模式

Permissive僅記錄違規操作,不阻止(用于調試)。
Disabled完全關閉SELinux(需重啟生效)。

2、基礎操作命令

1. 查看SELinux狀態
getenforce# 查看當前模式
sestatus# 詳細狀態(模式/策略類型)
2. 切換工作模式
setenforce 0# 切換到Permissive模式
setenforce 1# 切換到Enforcing模式

注意:setenforce僅臨時生效,永久修改需編輯 /etc/selinux/config 文件。

3、安全上下文(Security Context)

1. 查看上下文
ls -Z /var/www/html # 查看文件/目錄的上下文
ps -Z -C httpd# 查看進程的上下文
2. 修改上下文
chcon命令
選項說明示例消息
-t, --type TYPE設置安全上下文的類型部分已將 file.txt 的類型更改為 httpd_sys_content_t
-u, --user USER設置安全上下文的用戶部分已將 file.txt 的用戶更改為 system_u
-r, --role ROLE設置安全上下文的角色部分已將 file.txt 的角色更改為 object_r
--reference=FILE使用指定文件的安全上下文已從 ref_file 復制上下文到 target_file
-R, --recursive遞歸處理文件和目錄已遞歸更改 dir/ 及其內容的上下文
-h, --help顯示幫助信息顯示幫助菜單
-v, --verbose顯示操作詳情正在更改 file.txt 的安全上下文
--version顯示版本信息chcon (GNU coreutils) 8.32

選項使用案例

設置文件類型 將 /var/www/html/index.html 的上下文類型設為 httpd_sys_content_t:

sudo chcon -t httpd_sys_content_t /var/www/html/index.html

設置用戶部分 將 /etc/nginx/nginx.conf 的用戶部分設為 system_u:

sudo chcon -u system_u /etc/nginx/nginx.conf

設置角色部分 將 /home/user/file.txt 的角色部分設為 object_r:

sudo chcon -r object_r /home/user/file.txt

遞歸操作目錄 遞歸修改 /var/www/html/ 目錄下所有文件的上下文類型:

sudo chcon -R -t httpd_sys_content_t /var/www/html/

顯示幫助信息

chcon --help

顯示版本信息

chcon --version

詳細模式操作 啟用詳細輸出,修改 ~/.ssh/config 的上下文類型:

sudo chcon -v -t ssh_home_t ~/.ssh/config

說明

  • 實際執行時,若未添加 -v 參數,chcon 默認不輸出成功信息,僅在出錯時顯示錯誤。

  • 使用 -v 參數可查看操作詳情(如上述表格中的“示例消息”)。

chcon -t httpd_sys_content_t /var/www/html/index.html # 臨時修改文件類型
restorecon -v /var/www/html/index.html # 恢復默認上下文
semanage 命令
子命令/選項用途說明常用選項示例消息/操作
semanage login管理SELinux用戶與Linux賬戶的映射關系-a (添加)、-d (刪除)、-m (修改)
semanage user管理SELinux用戶及其角色和權限-a、-d、-R (角色)、-L (限制)創建新SELinux用戶 web_user 并分配角色 httpd_role
semanage port管理網絡端口與SELinux類型的綁定關系-a、-d、-t (類型)、-p (協議)將TCP端口 8080 綁定到 http_port_t 類型
semanage interface管理網絡接口與SELinux類型的綁定關系-a、-d、-t將接口 eth1 綁定到 netif_t 類型
semanage module管理SELinux策略模塊(啟用/禁用)-a、-d、-e (啟用)、-D (禁用)啟用策略模塊 my_custom_module
semanage fcontext管理文件/目錄的默認SELinux上下文規則-a、-d、-t、-s (范圍)添加規則:/webapps(/.*)? 的上下文類型為 httpd_sys_content_t
semanage boolean管理SELinux布爾值(開關策略功能)-1 (查看)、--on、--off啟用布爾值 httpd_can_network_connect
semanage dontaudit管理dontaudit規則(是否記錄特定訪問拒絕事件)--on、--off關閉對 sshd 的 dontaudit 規則
-h / --help顯示幫助信息-顯示子命令的幫助菜單
-v / --verbose顯示詳細操作信息-顯示添加端口 8080 的詳細過程
-n / --noheading輸出時隱藏列標題-僅顯示端口列表數據,無標題行

選項使用案例

管理端口綁定

將TCP端口 8080 標記為HTTP服務端口:

sudo semanage port -a -t http_port_t -p tcp 8080

說明:允許Apache等HTTP服務使用8080端口。

管理文件上下文規則

為自定義Web目錄 /opt/webapps 設置默認上下文:

sudo semanage fcontext -a -t httpd_sys_content_t "/opt/webapps(/.*)?"
sudo restorecon -Rv /opt/webapps

說明:添加規則后需運行 restorecon 立即生效。

管理SELinux用戶映射

將Linux用戶 dev_user 映射到SELinux用戶 user_u:

sudo semanage login -a -s user_u dev_user

說明:限制用戶 dev_user 的SELinux權限。

啟用布爾值

允許HTTP服務訪問網絡:

sudo semanage boolean --on httpd_can_network_connect

說明:無需重啟服務,立即生效。

管理策略模塊

禁用自定義策略模塊 mymodule:

sudo semanage module -D mymodule

說明:禁用后相關規則不再生效。

查看當前端口綁定

列出所有HTTP相關端口:

semanage port -l | grep http_port_t

輸出示例

http_port_t    tcp    80, 443, 8080

?刪除文件上下文規則

移除對 /tmp/custom_dir 的上下文規則:

sudo semanage fcontext -d "/tmp/custom_dir(/.*)?"

注意事項

  • 權限要求:大多數操作需 sudo 或 root 權限。

  • 持久化存儲:semanage 修改的規則會保存到策略庫(默認路徑 /etc/selinux/targeted),重啟后仍有效。

  • 結合工具使用:修改文件上下文后,需運行 restorecon 或重啟服務使更改生效。

4、SELinux布爾值(Booleans)

SELinux策略通過布爾值動態調整權限控制(例如允許Apache訪問用戶家目錄)。

getsebool -a | grep httpd# 查看所有與Apache相關的布爾值
setsebool -P httpd_enable_homedirs=on # 啟用布爾值(-P永久生效)

5、日志分析與故障排除

1. 查看SELinux日志
tail -f /var/log/audit/audit.log # 直接查看原始日志
ausearch -m AVC -ts recent# 使用工具過濾日志
2.生成解決方案建議
grep "avc: denied" /var/log/audit/audit.log | audit2allow -M mypolicy
semodule -i mypolicy.pp# 編譯并加載自定義策略

6、常見問題與解決方案

場景1:Web服務器無法訪問文件
  • 現象:Apache返回403錯誤,但文件權限正常。

  • 解決

    1. 檢查文件上下文:ls -Z /var/www/html

    2. 修復上下文:restorecon -Rv /var/www/html

場景2:服務無法綁定非標準端口
  • 現象:Nginx無法監聽8080端口。

  • 解決

semanage port -a -t http_port_t -p tcp 8080# 添加端口到SELinux策略

7、注意事項

  1. 不要隨意禁用SELinux:優先使用Permissive模式調試。

  2. 謹慎使用chcon:錯誤修改上下文可能導致系統不穩定。

  3. 備份策略:修改策略前備份 /etc/selinux 目錄。

二、Linux防火墻-Firewalld

1、 概述

按表現形式劃分:

軟件防火墻: 集成在系統內部,Linux系統: iptables、firewalld、ufw; windows系統下: windows defender

硬件防火墻: 華為防火墻、思科防火墻、奇安信防火墻、深信服防火墻等

按技術劃分:

包過濾防火墻: 檢查數據包的源IP、目的IP、源端口、目的端口、TCP的syn控制位

七層防火墻:除了上述檢查外,還會檢查數據內容

防火墻的作用:

阻止來自網絡外部的攻擊、進行流量控制

2、 Linux防火墻

防火墻結構

用戶態:

iptables: 使用iptables命令對防火墻規則進行管理,必須深度理解網絡技術和四表五鏈,對于初學者或者網絡技術不達標的人員不友好

firewalld:使用firewall-cmd命令對防火墻進行管理,采用的是區域劃分的形式。不需要連接底層的四表五鏈,對于初學者比較友好

ufw: 使用ufw命令對防火墻進行管理,命令簡單易懂。

內核態:

四表: 從內核->用戶的順序: raw -> mangle -> nat -> filter

五鏈: input、output、forward、prerouting、postrouting

firewalld防火墻
區域分類

九大區域: block、dmz、drop、external、home、internal、public、trusted、work

區域功能

public:公共區域,默認區域

public (active)
target: default #區域類型規則
icmp-block-inversion: no
interfaces: ens33 #屬于該區域的接口
sources:#來源
services: dhcpv6-client ssh #放行服務的名稱
ports:#放行端口號
protocols:#放行協議
masquerade: no#NAT地址轉換
forward-ports:#轉發端口
source-ports:#源端口
icmp-blocks:#ICMP的阻塞類型,ping的阻塞
rich rules:#富規則

?home: 家庭區域

home
target: default
icmp-block-inversion: no
interfaces: 
sources: 
services: dhcpv6-client mdns samba-client ssh
ports: 
protocols: 
masquerade: no
forward-ports: 
source-ports: 
icmp-blocks: 
rich rules:

?work: 工作區域

work
target: default
icmp-block-inversion: no
interfaces: 
sources: 
services: dhcpv6-client ssh
ports: 
protocols: 
masquerade: no
forward-ports: 
source-ports: 
icmp-blocks: 
rich rules: 

?trusted: 完全信任區域

trusted
target: ACCEPT#不采用默認規則,放行一切
icmp-block-inversion: no
interfaces: 
sources: 
services: 
ports: 
protocols: 
masquerade: no
forward-ports: 
source-ports: 
icmp-blocks: 
rich rules: 

?internal: 內部區域 (連接內部網絡)

internal
target: default
icmp-block-inversion: no
interfaces: 
sources: 
services: dhcpv6-client mdns samba-client ssh
ports: 
protocols: 
masquerade: no
forward-ports: 
source-ports: 
icmp-blocks: 
rich rules: 

?external: 外部區域 (連接外部網絡,例如: internet網絡)

ternal
target: default
icmp-block-inversion: no
interfaces: 
sources: 
services: ssh
ports: 
protocols: 
masquerade: yes#默認進行NAT地址轉換
forward-ports: 
source-ports: 
icmp-blocks: 
rich rules: 

?dmz: 非軍事化管理區域(內部的服務器放于該區域)

dmz
target: default
icmp-block-inversion: no
interfaces: 
sources: 
services: ssh
ports: 
protocols: 
masquerade: no
forward-ports: 
source-ports: 
icmp-blocks: 
rich rules:

?drop: 丟棄區域(丟棄一切流量,不給出任何回應)

drop
target: DROP
icmp-block-inversion: no
interfaces: 
sources: 
services: 
ports: 
protocols: 
masquerade: no
forward-ports: 
source-ports: 
icmp-blocks: 
rich rules:

?block: 阻塞區域 (拒絕任何流量,但給出回應)

block
target: %%REJECT%%
icmp-block-inversion: no
interfaces: 
sources: 
services: 
ports: 
protocols: 
masquerade: no
forward-ports: 
source-ports: 
icmp-blocks: 
rich rules:
firewall-cmd命令用法

關鍵字:

--list-*
--get-*
--set-*
--add-*
--remove-*
--change-*
--zone=

命令分類:

查看:

#查看所有區域的詳細信息
[root@arthur ~]# firewall-cmd --list-all-zones 
#查看指定區域的詳細信息
[root@arthur ~]# firewall-cmd --list-all --zone=public 
#查看指定區域的放行服務
[root@arthur ~]# firewall-cmd --list-services --zone=public 
#查看指定區域的放行端口
[root@arthur ~]# firewall-cmd --list-ports --zone=public 
#查看指定區域包含的網絡接口
[root@arthur ~]# firewall-cmd --list-interfaces --zone=public 
#查看指定區域的放心協議
[root@arthur ~]# firewall-cmd --list-protocols --zone=public
#查看指定區域的ICMP阻塞類型
[root@arthur ~]# firewall-cmd --list-icmp-blocks --zone=public
#查看指定區域的放行源地址
[root@arthur ~]# firewall-cmd --list-sources --zone=public
#查看指定區域的源端口
[root@arthur ~]# firewall-cmd --list-source-ports --zone=public
#查看指定區域的富規則
[root@arthur ~]# firewall-cmd --list-rich-rules --zone=public 
#查看指定區域的轉發端口
[root@arthur ~]# firewall-cmd --list-forward-ports --zone=public 
#查看firewalld支持的服務類型
[root@arthur ~]# firewall-cmd --get-services
#查看firewalld的默認區域
[root@arthur ~]# firewall-cmd--get-default-zone
#查看firewalld支持的ICMP的阻塞類型
[root@arthur ~]# firewall-cmd--get-icmptypes 
#查看firewalld所有的活動區域
[root@arthur ~]# firewall-cmd --get-active-zones
#查看指定網絡接口所屬區域
[root@arthur ~]# firewall-cmd --get-zone-of-interface=ens33
#查看所有區域名稱
[root@arthur ~]# firewall-cmd --get-zones

?添加:

#添加指定服務到指定區域
[root@arthur ~]# firewall-cmd --add-service=http --zone=public 
success
#添加端口到指定區域
[root@arthur ~]# firewall-cmd --add-port=80/tcp --zone=public 
success
#添加指定協議到指定區域
[root@arthur ~]# firewall-cmd --add-protocol=ah --zone=public 
success
#添加ICMP阻塞類型到指定區域
[root@arthur ~]# firewall-cmd --add-icmp-block=echo-request --zone=public 
success
#windows端驗證
C:\Users\zzh>ping 192.168.115.129正在 Ping 192.168.115.129 具有 32 字節的數據:
來自 192.168.115.129 的回復: 無法訪問目標主機。
來自 192.168.115.129 的回復: 無法訪問目標主機。
來自 192.168.115.129 的回復: 無法訪問目標主機。
#添加指定網絡接口到指定區域
[root@arthur ~]# firewall-cmd --add-interface=ens33 --zone=work 
success
#添加指定區域的放行源地址
[root@arthur ~]# firewall-cmd --add-source=192.168.1.0/24 --zone=work 
success
#添加指定區域的放行源端口
[root@arthur ~]# firewall-cmd --add-source-port=999/tcp --zone=work 
success
#添加轉發端口到指定區域
[root@arthur ~]# firewall-cmd --add-forward-port=port=8080:proto=tcp:toport=80:toaddr=192.168.115.115 --zone=work 
success
#添加地址轉換功能到指定區域
[root@arthur ~]# firewall-cmd --add-masquerade --zone=work 
success
#驗證添加
[root@arthur ~]# firewall-cmd --list-all --zone=public 

?修改:

#修改默認區域
[root@arthur ~]# firewall-cmd --set-default-zone=work
success
#修改網絡接口所屬區域
[root@arthur ~]# firewall-cmd --change-interface=ens33 --zone=internal 
success
[root@arthur ~]# firewall-cmd --change-zone=ens33 --zone=external 
success
#追加指定區域的放行源地址
[root@arthur ~]# firewall-cmd --change-source=192.168.2.0/24 --zone=work 
success

?刪除:

#刪除指定服務到指定區域
[root@arthur ~]# firewall-cmd --remove-service=http --zone=public 
success
#刪除端口到指定區域
[root@arthur ~]# firewall-cmd --remove-port=80/tcp --zone=public 
success
#刪除指定協議到指定區域
[root@arthur ~]# firewall-cmd --remove-protocol=ah --zone=public 
success
#刪除ICMP阻塞類型到指定區域
[root@arthur ~]# firewall-cmd --remove-icmp-block=echo-request --zone=public 
success
#刪除指定網絡接口到指定區域
[root@arthur ~]# firewall-cmd --remove-interface=ens33 --zone=work 
success
#刪除指定區域的放行源地址
[root@arthur ~]# firewall-cmd --remove-source=192.168.1.0/24 --zone=work 
success
#刪除指定區域的放行源端口
[root@arthur ~]# firewall-cmd --remove-source-port=999/tcp --zone=work 
success
#刪除轉發端口到指定區域
[root@arthur ~]# firewall-cmd --remove-forward-port=port=8080:proto=tcp:toport=80:toremover=192.168.115.115 --zone=work 
success
#刪除地址轉換功能到指定區域
[root@arthur ~]# firewall-cmd --remove-masquerade --zone=work 
success
#驗證刪除
[root@arthur ~]# firewall-cmd --list-all --zone=public 

?保存規則:

#逐行規則保存
[root@arthur ~]# firewall-cmd --remove-masquerade --zone=work --permanent
#一次性保存所有規則
[root@arthur zones]# firewall-cmd --runtime-to-permanent
success
#保存的規則存儲路徑
/etc/firewalld/zones

結語

今天的主要試驗是關于防火墻的練習,需要在練習中對防火墻的相關命令進行熟練掌握。?

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

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

    相關文章

    企業內訓系統源碼開發詳解:直播+錄播+考試的混合式學習平臺搭建

    在企業數字化轉型的大潮中,員工培訓早已不再是傳統教室中的一場場“走過場”,而是通過技術驅動的“系統化能力提升”。尤其在知識更新換代加速、競爭壓力日益激烈的背景下,企業越來越傾向于建設自主可控、功能靈活、支持多種學習形態的內訓平…

    智能化報銷與精細化管理:購物小票識別系統全面提升企業運營效率

    在現代企業管理中,購物小票的處理一直是財務和運營管理中的一項挑戰。尤其在企業費用報銷、會員管理、庫存監控等環節,手動整理與核對小票不僅耗時費力,還容易產生錯誤。隨著人工智能技術的發展,企業亟需一種高效、智能的解決方案…

    毫秒級數據采集的極致優化:如何用C#實現高性能、無冗余的實時文件寫入?

    在工業控制、通信系統或高頻交易領域,毫秒級數據采集的精度直接決定系統性能。但一個棘手問題常被忽視:如何處理同一毫秒內的重復數據? 若簡單寫入所有數據,會導致文件臃腫、分析效率驟降;若處理不當,又可能…

    NLua性能對比:C#注冊函數 vs 純Lua實現

    引言 在NLua開發中,我們常面臨一個重要選擇:將C#函數注冊到Lua環境調用,還是直接在Lua中實現邏輯? 直覺告訴我們,C#作為編譯型語言性能更高,但跨語言調用的開銷是否會影響整體性能?本文通過基準…

    go并發與鎖之sync.Mutex入門

    sync.Mutex 原理:一個共享的變量,哪個線程握到了,哪個線程可以執行代碼 功能:一個性能不錯的悲觀鎖,使用方式和Java的ReentrantLock很像,就是手動Lock,手動UnLock。 使用例子: v…

    【HarmonyOS5】DevEco Studio 使用指南:代碼閱讀與編輯功能詳解

    ?本期內容:【HarmonyOS5】DevEco Studio 使用指南:代碼閱讀與編輯功能詳解 🏆系列專欄:鴻蒙HarmonyOS:探索未來智能生態新紀元 文章目錄 前言代碼閱讀代碼導航功能代碼折疊語法高亮跨語言跳轉代碼查找 快速查閱API接口…

    【Python 深度學習】1D~3D iou計算

    一維iou 二維 import numpy as npdef iou_1d(set_a, set_b):# 獲得集合A和B的邊界 x1, x2 set_ay1, y2 set_b# 計算交集的上下界low max(x1,y1)high - min(x2, y2)# 計算交集if high - low < 0:inter 0else:inter high - low# 計算并集union (x2 -x1) (y2 - y1) - in…

    SpringBoot Controller接收參數方式, @RequestMapping

    一. 通過原始的HttpServletRequest對象獲取請求參數 二. 通過Spring提供的RequestParam注解&#xff0c;將請求參數綁定給方法參數 三. 如果請求參數名與形參變量名相同&#xff0c;直接定義方法形參即可接收。(省略RequestParam) 四. JSON格式的請求參數(POST、PUT) 主要在PO…

    智能防護實戰:從攻擊成本看企業安全降本增效

    1. 網絡攻擊的低成本與高回報陷阱 暗網中&#xff0c;一次完整的網絡釣魚攻擊僅需30美元/月起步&#xff0c;而勒索軟件攻擊成本平均1000美元&#xff0c;卻能導致企業損失高達445萬美元&#xff08;IBM 2023年數據&#xff09;。例如&#xff0c;信用卡信息每條僅售10美元&am…

    大語言模型 20 - MCP 在客戶端中使用 Cursor Cline 中配置 MCP 服務

    MCP 基本介紹 官方地址&#xff1a; https://modelcontextprotocol.io/introduction “MCP 是一種開放協議&#xff0c;旨在標準化應用程序向大型語言模型&#xff08;LLM&#xff09;提供上下文的方式。可以把 MCP 想象成 AI 應用程序的 USB-C 接口。就像 USB-C 提供了一種…

    MySQL 在 CentOS 7 環境下的安裝教程

    &#x1f31f; 各位看官好&#xff0c;我是maomi_9526&#xff01; &#x1f30d; 種一棵樹最好是十年前&#xff0c;其次是現在&#xff01; &#x1f680; 今天來學習Mysql的相關知識。 &#x1f44d; 如果覺得這篇文章有幫助&#xff0c;歡迎您一鍵三連&#xff0c;分享給更…

    WPF的基礎設施:XAML基礎語法

    XAML基礎語法 1 控件聲明與屬性設置1.1 特性語法&#xff08;Attribute Syntax&#xff09;1.2 屬性元素語法&#xff08;Property Element Syntax&#xff09;1.3 特殊值標記擴展 2 x:Name與Name的區別3 注釋與代碼折疊4 實用技巧集合5 常見錯誤排查 XAML( Extensible Applic…

    機器學習筆記【Week3】

    一、邏輯回歸&#xff08;Logistic Regression&#xff09; 與線性回歸的區別&#xff1a; 問題類型輸出類型舉例回歸問題連續實數房價預測、氣溫預測分類問題離散類別&#xff08;0 或 1&#xff09;是否患病、是否點擊廣告、是否合格 我們希望構建一個模型&#xff0c;根據…

    6.4.2_3最短路徑問題_Floyd算法

    Floyd弗洛伊德 膜拜大佬&#xff0c;給大佬鞠躬鞠躬鞠躬。。。。。。。。。 Floyd算法 ----解決頂點間的最短路徑&#xff1a; 過程&#xff1a; 如下&#xff1a; 初始化(沒有中轉點)&#xff1a;2個鄰接矩陣A和path&#xff0c;第一個是沒有中轉點的2個頂點之間的最短路徑…

    uniapp|實現多端圖片上傳、拍照上傳自定義插入水印內容及拖拽自定義水印位置,實現水印相機、圖片下載保存等功能

    本文以基礎視角,詳細講解如何在uni-app中實現圖片上傳→水印動態編輯→圖片下載的全流程功能。 目錄 引言應用場景分析(社交媒體、內容保護、企業素材管理等)uniapp跨平臺開發優勢核心功能實現?圖片上傳模塊多來源支持:相冊選擇(`uni.chooseImage`)與拍照(`sourceType:…

    2021年認證杯SPSSPRO杯數學建模B題(第二階段)依巴谷星表中的畢星團求解全過程文檔及程序

    2021年認證杯SPSSPRO杯數學建模 B題 依巴谷星表中的畢星團 原題再現&#xff1a; 依巴谷衛星&#xff08;High Precision Parallax Collecting Satellite&#xff0c;縮寫為 Hip-parcos&#xff09;&#xff0c;全稱為“依巴谷高精度視差測量衛星”&#xff0c;是歐洲空間局發…

    行為型:解釋器模式

    目錄 1、核心思想 2、實現方式 2.1 模式結構 2.2 實現案例 3、優缺點分析 4、適用場景 5、注意事項 1、核心思想 目的&#xff1a;針對某種語言并基于其語法特征創建一系列的表達式類&#xff08;包括終極表達式與非終極表達式&#xff09;?&#xff0c;利用樹結構模式…

    Redis分布式緩存核心架構全解析:持久化、高可用與分片實戰

    一、持久化機制&#xff1a;數據安全雙引擎 1.1 RDB與AOF的架構設計 Redis通過RDB&#xff08;快照持久化&#xff09;和AOF&#xff08;日志持久化&#xff09;兩大機制實現數據持久化。 ? RDB架構&#xff1a;采用COW&#xff08;寫時復制&#xff09;技術&#xff0c;主進程…

    換臉視頻FaceFusion3.1.0-附整合包

    2025版最強換臉軟件FaceFusion來了&#xff08;附整合包&#xff09;超變態的換臉教程 2025版最強換臉軟件FaceFusion來了&#xff08;附整合包&#xff09;超變態的換臉教程 整合包地址&#xff1a; 「Facefusion_V3.1.0」 鏈接&#xff1a;https://pan.quark.cn/s/f71601a920…

    論文閱讀筆記——Step1X-Edit: A Practical Framework for General Image Editing

    Step1X-Edit 論文 當前圖像編輯數據集規模小&#xff0c;質量差&#xff0c;由此構建了如下數據構造管線。 高質量三元組數據&#xff08;源圖像、編輯指令、目標圖像&#xff09;。 主體添加與移除&#xff1a;使用 Florence-2 對專有數據集標注&#xff0c;然后使用 SAM2 進…