Linux系統編程--權限管理

權限管理

  • 第二講 權限管理
    • 1. Shell命令以及運行原理
      • 1.1 知識引入
      • 1.2 概念介紹
      • 1.3 具體示例
    • 2. Linux權限問題
      • 2.1 權限概念
      • 2.2 用戶分類
      • 2.3 切換用戶
      • 2.4 用戶提權
      • 2.5 文件權限管理
        • 2.5.1 文件訪問者的分類(角色)
        • 2.5.2 文件類型和訪問權限(事物屬性)
          • 2.5.2.1 文件類型
          • 2.5.2.2 訪問權限
            • 補充:什么是可執行
          • 2.5.2.3 具體示例
          • 2.5.2.4 文件后綴與文件類型
        • 2.5.3 文件權限值的表示方法
        • 2.5.4 文件訪問權限的相關設置指令
          • 2.5.4.1 chmod 指令
            • chmod 指令權限的格式
            • 補充:訪問文件時的特殊情況
          • 2.5.4.2 chown 指令
          • 2.5.4.3 chgrp 指令
      • 2.6 目錄權限管理
        • 2.6.1 目錄的權限
        • 2.6.2 最終權限(缺省權限)
          • 2.6.2.1 umask 指令
      • 2.7 沾滯位

第二講 權限管理

1. Shell命令以及運行原理

1.1 知識引入

都知道 Windows 以圖形化界面為交互方式,而 Linux 以命令行界面為交互方式。 Windows 和 Linux 的交互方式雖然不同,但本質上是一樣的,圖形化界面和命令行界面都是為了讓用戶進行相關操作,而圖形化界面和命令行界面就是所說的“外殼程序(Shell)”。

在這里插入圖片描述

1.2 概念介紹

Linux 嚴格意義上說是一個操作系統,稱之為“核心(kernel)”,但一般用戶不能直接使用 kernel,而是通過 kernel 的“外殼程序”,也就是所謂的 Shell,來與 kernel 溝通。Shell 將外部輸入的命令分析解析后將認為合法的信息傳遞給內核進行執行,內核執行完后將要返回的信息交給外殼再由外殼顯示給用戶。

Shell最簡單的定義就是“命令行解釋器”:
1)將使用者的命令翻譯給核心(kernel)處理。
2)將核心的處理結果翻譯給使用者。

1.3 具體示例

  • 對于 Windows GUI,操作 Windows 不是直接操作 Windows 內核,而是通過圖形接口、點擊等方式來完成(比如進入 D 盤時,通常雙擊 D 盤盤符,或運行某個應用程序)。Windows GUI 會將進行的這些操作翻譯為 Windows 內核所能理解的指令,然后傳遞給 Windows 內核進行處理。當 Windows kernel 處理完畢后,GUI 又會將處理結果翻譯用戶能夠看懂的操作,這樣與 Windows kernel 的交互成本就會被大大降低。
  • 對于 Linux,Shell 有相同的作用:它負責解析用戶輸入的命令,并將解析后的指令傳給 Linux 內核。內核執行后,將結果返回給 Shell,再由 Shell 解析并展示給用戶。

幫助理解:

假設你是一個優秀的程序員,你家庭條件也很不錯,你爸是村長,你家有兩套房、一輛車,你自己的年薪也是30W+。你喜歡上了村里的另一個姑涼如花,但是呢你十分內向,不敢向如花表明你的心意。

但是你們村中有一個十分厲害的媒婆:王婆,王婆在你們村方圓十里都是最厲害的媒婆,只要它出馬基本上就沒有談不成的。所以你找上了王婆,讓她去向如花說媒,王婆也去了。

不幸的是,如花表示你是一個好人,但是你們不適合,并且如花已經和村里的另一個高富帥訂婚了,再過一年就結婚。

但是你是一個十分專一的人,非如花不可,于是你還是三番五次的找王婆去給你再說一說,王婆試了幾次之后發現這媒完全不可能,于是后面直接不鳥你了,也不再去找如花。

你看王婆直接不鳥你了(Shell攔截非法指令),于是跟王婆說:“我爸是村長,王婆您再去給我說說吧。”王婆看這事不辦不行,但是如果繼續三番五次去說媒,自己的口碑也沒了。

最后,王婆想了一個辦法,王婆收了十幾個徒弟,然后每次你找王婆,王婆都找一些冠冕堂皇的借口說自己沒空,然后派徒弟去找如花,這樣即使失敗了也可以說是因為徒弟萌新太菜了,這樣即不得罪村長,也保住了自己的口碑。(實習生模式,Shell 會進行創建子進程的方式進行命令行的解析

在上面的例子中,王婆就相當于 shell,用來傳遞你 (用戶) 的信息 (指令) 給如花 (kernel),然后將如花的信息反饋給你,同時,王婆拒絕多次去說媒,相當于 shell 攔截了非法指令,變相的保護了 kernel。最后,為了保證自己的口碑,王婆安排自己的徒弟去說媒,相當于 shell 為了防止自身崩潰,所以自己不會直接去執行指令,而是派生子進程去執行命令行的解析

補充:

shell 是 “外殼程序” 的統稱,不同 Linux 版本對應的 shell 程序可能不同,其中 bash 是標準的 GNU shell,所以它成為了所有 Linux 發行版上的標準 shell。 現在大多數現代 Linux 發行版都默認提供 Bash shell 。 對應上面的例子來說,shell 是媒婆,而 bash 是王婆

2. Linux權限問題

2.1 權限概念

什么是權限?

  1. 權限是限制人的。(人 = 真實的人 + 身份角色)
  2. 目標事物的屬性也影響權限。

本質的說權限 = 角色 + 事物屬性,最終就是權限影響你能不能做一件事。

2.2 用戶分類

Linux下有兩種用戶:超級用戶 (root) 與 普通用戶

  • 超級用戶:可以在 Linux 系統下做任何事情,幾乎不受權限的限制;
  • 普通用戶:在 Linux 下做權限范圍內的事情;
  • 超級用戶的命令提示符是“#”,普通用戶的命令提示符是“$”;

2.3 切換用戶

Linux 切換用戶的指令是:su [用戶名]

在 Linux 中,如果要從超級用戶切換到普通用戶,直接 “su [用戶名]” 即可,沒有任何限制:

外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳

但是如果要從普通用戶切換到超級用戶,就需要輸入 root 密碼。普通用戶切換到 root 用戶有兩種方式:

  • su:切換到 root 的當前目錄;
  • su -:直接切換到 root 的根目錄;

在這里插入圖片描述

在這里插入圖片描述

**注意:**注:Linux 出于安全考慮,從鍵盤輸入的密碼在終端上是不會回顯的,也就是說輸入密碼時屏幕不會顯示任何東西。

2.4 用戶提權

在工作使用Linux的時候可能會出現這樣一種狀況:當前有一條指令必須擁有超級用戶的權限才能執行,但不想切換用戶,想直接讓普通用戶以root用戶的身份去執行該指令。

sudo 指令可以滿足需求:

在這里插入圖片描述

執行 sudo 指令發現了兩個奇怪的現象:

1、使用 sudo 指令讓我們擁有root用戶的權限,按理來說應該輸入root密碼,但事實是它讓輸入自己普通用戶的密碼;

2、我以 tcq 的普通用戶身份執行 sudo 指令,它提示 tcq 用戶不在 sudoers file 內,sudo 失敗。

上面這些現象是由 sudo 的機制造成的:sudo 存在的目的是為了 給受信任的用戶提供最少的執行障礙,受信任的用戶是指被添加到 sudoers 文件中的用戶。也就是說,當普通用戶存在于 sudoers 文件中時,說明 root 用戶充分信任此普通用戶,所以當這個普通用戶使用 sudo 指令提升權限時只需要輸入自己的密碼即可。而如果此普通用戶不在 sudoers 文件中,那么自然也不能通過 sudo 指令提權。

注意:sudo 的有限時間為15分鐘,即當使用 sudo 提權成功后,后面15分鐘內再次使用 sudo 指令不需要再次輸入密碼。

2.5 文件權限管理

因為在 Linux 下一切皆文件,所以 Linux 的權限問題都是依附于文件的,所以談到權限一般指的是文件的權限。

同時在 2.1 中提到權限 = 角色 + 事物屬性,這里的角色也就是文件訪問者,事物屬性也就是文件類型和訪問權限

2.5.1 文件訪問者的分類(角色)

在 Linux 下,文件的訪問者被分為三類:

  • 所有者:文件和文件目錄的所有者:u (user)。
  • 所屬組:文件和文件目錄的所有者所在的組的用戶:g (group)。
  • 其他用戶:除所有者和所屬組用戶之外的用戶:o (other)。

關于文件的所有者和其他用戶相信大家都很容易理解,但是為什么會有一個所屬組呢?以一個例子說明:

假設一家剛起步的很窮的公司要開發一款產品,該公司的老板奉行競爭理念,所以他把手下的人分為了兩個組,讓他們來研發同一款產品,最后哪個組的產品更優哪個組就拿額外的獎金。

但是呢由于公司很窮,只買得起一臺主機,這時候問題就出現了:兩個組的成員公用一臺主機,那么組內成員的代碼如何進行共享呢?

如果我把文件設置為私有,這樣雖然另外一組的人看不到我的代碼,但同時我的隊友也看不到,而如果我把文件設置為共有,那么又可能有代碼泄露的風險。

為了解決這種情況,Linux 設計出了所屬組的概念,可以把多個用戶歸為一個組,讓組內的成員共享文件,組外的成員則受權限限制。

2.5.2 文件類型和訪問權限(事物屬性)
2.5.2.1 文件類型

Liunx 中一共有七種文件:

  • d:目錄;
  • -:普通文件 (可執行程序也屬于普通文件);
  • l:軟鏈接(類似Windows的快捷方式)
  • b:塊設備文件(例如硬盤、光驅等)
  • p:管道文件
  • c:字符設備文件(例如屏幕等串口設備)
  • s:套接口文件
2.5.2.2 訪問權限

在 Linux 中查看一個文件/目錄時,文件前面通常會出現很長一串字符:

在這里插入圖片描述

他們對應的含義如下:

在這里插入圖片描述

第一個字符代表文件類型,后面九個字符三三一組分別代表文件擁有者、所屬組和其他用戶的權限,其中文件的權限一共分為四類:

r:讀權限:Read 對文件而言,具有讀取文件內容的權限;對目錄來說,具有瀏覽該目錄信息的權限。
w:寫權限:Write 對文件而言,具有修改文件內容的權限;對目錄來說具有刪除移動目錄內文件的權限。
x:可執行權限:execute 對文件而言,具有執行文件的權限;對目錄來說,具有進入目錄的權限。

-:表示不具有該權限

補充:什么是可執行

在 Linux 下可執行 = 該文件是一個可執行文件 + 該角色有可執行權限

2.5.2.3 具體示例
-rwxr-xr-x 1 root root 8408 May  1 11:49 a.out

按上圖中的第一行的 a.out 文件,其首先是一個普通文件,文件擁有者和所屬組都是root,對于文件擁有者有讀權限、寫權限和可執行權限,對于文件所屬組具有讀權限和可執行權限,對于其他用戶具有讀權限和可執行權限

2.5.2.4 文件后綴與文件類型

在之前就提到,Linux 中不以文件的后綴名來區分文件類型,文件后綴屬于文件名的一部分。但這并不不代表不可以使用文件后綴來區分文件類型,意思就是雖然在 Linux 眼中文件后綴沒用,但是可以把文件后綴當作對用戶的一個提示符號;

同時,Linux 中不區分文件后綴并不代表 Linux 下的各種工具,比如 gcc、g++不區分。

2.5.3 文件權限值的表示方法
  1. 字符表示法

    在這里插入圖片描述

  2. 八進制數值表示法

    在這里插入圖片描述

2.5.4 文件訪問權限的相關設置指令
2.5.4.1 chmod 指令

格式chmod [參數] 權限 文件名

功能:設置文件的訪問權限。

常用選項

  • -R 遞歸修改目錄文件的權限;

**注意:**只有文件的擁有者,或者root,可以修改自己的的權限。

chmod 指令權限的格式
  1. 用戶符號 +/-/= 權限字符

    用戶符號:

    • u:擁有者
    • g:擁有者同組用戶
    • o:其它用戶
    • a:所有用戶

    +/-/= 的意義:

    • +:向權限范圍增加權限代號所表示的權限。
    • -:向權限范圍取消權限代號所表示的權限。
    • =:向權限范圍賦予權限代號所表示的權限。

    權限字符:

    • r:讀權限
    • w:寫權限
    • x:可執行權限
    • -:取消此權限

    指令演示:

    1. 對單個用戶 ± 權限:

      在這里插入圖片描述

    2. 對多個用戶 ± 權限:

      在這里插入圖片描述

  2. 三位八進制數字

    文件的權限一共三種:讀寫執行,所以用三個二進制位就可以表示全部情況,每一位都代表一個權限,依次是讀寫執行,有此權限就置1,沒有此權限就置0,最后組成的三位二進制數再轉化為八進制數即可用三個八進制數,一次表示三個角色的三個權限。

    指令演示:

    在這里插入圖片描述

補充:訪問文件時的特殊情況

當遇到如下這中文件擁有者和文件所屬組均為同一人,但是二者的權限不同,此時會依靠哪一個角色的權限呢?

在這里插入圖片描述

user、group 和 other 與當前角色進行身份對比的時候,依次只對比一次。如上,test.txt 文件的擁有者和所屬組成員都是 tcq 但是當取消了文件擁有者的讀權限的時候盡管 tcq 身為所屬組成員也應該有讀權限但是因為身份對比順序的問題其無法讀取文件中的內容。

2.5.4.2 chown 指令

格式chown [參數] 用戶名 文件名

功能:修改文件的擁有者。

常用選項:

  • -R 處理指定目錄以及其子目錄下的所有文件;

**注意:**當使用 chown 指令將屬于自己的文件賦給別人時,需要獲得別人的同意,所以在一般情況下是不能改變文件的擁有者的。只有 root 不受權限的約束,可以直接將屬于 A 的文件賦給 B,而不需要征得 A 和 B 的同意。

2.5.4.3 chgrp 指令

格式chgrp [參數] 用戶組名 文件名

功能:修改文件或目錄的所屬組。

常用選項

  • -R 遞歸修改文件或目錄的所屬組。

**注意:**和修改文件的擁有者一樣,不能直接修改文件的所屬組,需要征得別人的同意,而 root 不受權限約束。

2.6 目錄權限管理

2.6.1 目錄的權限

目錄權限所代表的含義如下:

  1. 可執行權限:能否進入目錄,如果目錄沒有可執行權限, 則無法cd到目錄中。
  2. 可讀權限:能否查看目錄中的文件內容,如果目錄沒有可讀權限, 則無法用 ls 等命令查看目錄中的文件內容。
  3. 可寫權限:能否在目錄中創建與刪除文件,如果目錄沒有可寫權限, 則無法在目錄中創建文件, 無法在目錄中進行刪除修改文件名等修改文件的操作。
2.6.2 最終權限(缺省權限)

根據上面權限的介紹,可知如果要進入一個目錄,就必須有可執行權限,然而對于普通文件并不是必須需要有可執行權限。這也就是為什么普通文件的起始權限666,而目錄文件的起始權限777的原因。

但是經過實踐自行創建的普通文件最終權限是775,目錄文件是664。而這也叫做缺省權限。造成這樣的結果是因為創建文件或目錄的時候除了受默認權限的約束之外,還要受到 umask (文件掩碼) 的影響。

在這里插入圖片描述

2.6.2.1 umask 指令

格式umask 權限值

功能:查看或修改文件掩碼。

**作用:**影響創建文件和目錄的缺省權限,使用 umask的本質是增強操作系統對新需求的靈活性。

注意:

最終權限(默認) = 起始權限 & (~umask)

將現有的存取權限減去權限掩碼后,即可產生建立文件時預設權限。超級用戶默認掩碼值為0022,普通用戶默認為0002

指令演示:

查看文件掩碼:

在這里插入圖片描述

**修改文件掩碼:**可以看到,當把文件掩碼設置為000后,此時創建出的文件的最終權限就等于文件的起始權限。
在這里插入圖片描述

2.7 沾滯位

在一個Linux系統中通常有很多用戶,并且可以看到不同用戶的家目錄是只有用戶本身可以進行訪問等操作,不同的用戶對于文件的訪問是隔離的。

那么有時就會有這樣一種需求:不同的用戶需要在一個公共的目錄下進行臨時文件的增刪查改,這個公共目錄通常由 root 用戶創建,然后將此目錄默認掩碼修改為777。
在這里插入圖片描述

在這里插入圖片描述

但是這里出現了一個問題:由于這個公共目錄的權限是777,所以任何一個用戶都可以刪除此目錄下的文件,無論該文件是否屬于此用戶。

為了出來上面這種不科學的情況,Linux 引入了粘滯位的概念。

粘滯位是權限的一種特殊情況,它不影響不同用戶在公共目錄下的讀寫執行操作,但是它可以禁止不同用戶之間互刪文件。粘滯位設置的方式很簡單,只需要在已有權限基礎上加上 t 即可,并且添加時不用指定用戶,Linux 會自動識別。

在這里插入圖片描述

當一個目錄被設置為 “粘滯位” 以后,該目錄下的文件只能由文件的所有者或者 root 刪除,其余用戶不能刪除。

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

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

相關文章

【智能硬件】X86和ARM架構的區別

詳細解釋X86架構和ARM架構之間的區別以及它們各自的特點。X86 架構定義與歷史定義:X86是一種計算機處理器體系結構,最初由英特爾公司開發。它是一系列指令集的集合體。歷史:最早的X86架構是Intel 8086處理器,在1978年發布。后續發…

玳瑁的嵌入式日記D13-0806(C語言)

指針1.指針指針 就是地址(地址就是內存單元的編號)指針變量 (結合語境) eg:定義一個指針指針這一類數據 --- 數據類型 --- 指針類型 (1).指針 是什么 (2).指針類型 int a; //int數據類型 a是int型變量 //a的空間 想來存儲 整型數據 2.指針的定義 基類型 * 指針變量名…

密碼學基礎知識總結

密碼學基礎知識總結 一、Base編碼 1. Base系列特征 編碼類型字符集特征Base160-9, A-F密文長度偶數Base32A-Z, 2-7包含數字2-7Base64a-z,0-9,,/,密文長度是8的倍數Base36A-Z,0-9僅支持整數加密Base910-9,a-z,A-Z,特殊符號高密度編碼Base100Emoji表情表情符號組成 2. 典型題型…

PostgreSQL 中 pg_wal文件過多過大的清理方法及關鍵注意事項的總結

PostgreSQL 中 pg_wal文件過多過大的清理方法及關鍵注意事項的總結 以下是針對 PostgreSQL 中 pg_wal 文件過多過大的清理方法及關鍵注意事項的總結 一、安全清理 WAL 文件的完整流程 1. 確認數據庫和備份完整性 備份驗證:確保最近的物理備份(如 pg_base…

Django事務支持

1.事務概念 事務是一組不可分割的操作序列,這些操作要么全部執行,要么全部不執行。事務具有四個關鍵屬性,通常稱為 ACID 特性: 原子性(Atomicity):事務是一個不可分割的工作單位,事務…

<form> + <iframe> 方式下載大文件的機制

使用 <form> <iframe> 方式下載大文件的機制之所以穩定&#xff0c;核心在于其?分塊傳輸?和?瀏覽器沙箱隔離?設計。以下是技術原理詳解&#xff1a; 一、底層工作機制 ?分塊傳輸協議? 表單提交后&#xff0c;服務器按 Transfer-Encoding: chunked 分塊返回數…

Python--OCR(2)

一、明確 OCR 任務邊界首先定義 OCR 系統的核心目標&#xff1a;場景&#xff1a;印刷體&#xff08;如文檔、發票&#xff09;/ 手寫體&#xff08;如筆記&#xff09;/ 特定場景&#xff08;如車牌、身份證&#xff09;輸入&#xff1a;圖像格式&#xff08;JPG/PNG&#xff…

基于Django的計算機資源爬蟲及可視化系統的設計與實現

文章目錄有需要本項目的代碼或文檔以及全部資源&#xff0c;或者部署調試可以私信博主一、項目背景二、項目目標三、系統架構與技術選型四、系統功能模塊五、應用場景與價值六、項目特色與創新點七、總結每文一語有需要本項目的代碼或文檔以及全部資源&#xff0c;或者部署調試…

SH3001六軸傳感器應用(二)(IIC驅動開發)

一、前言我這邊使用的開發板原本已經做好了該sensor的驅動&#xff0c;但是使用過程中發現&#xff0c;原始驅動sensor是通過事件的方式上報的&#xff0c;加速度和陀螺儀數據并不同步&#xff0c;不滿足使用要求&#xff0c;只有重新寫一個iic的驅動&#xff0c;進行sensor數據…

面試題:基礎的sql命令

基礎的 SQL 命令主要用于對數據庫進行查詢、新增、修改、刪除等操作&#xff0c;可分為以下幾類&#xff1a;一、數據查詢&#xff08;SELECT&#xff09;用于從表中獲取數據&#xff0c;是最常用的命令。 基本語法&#xff1a;SELECT 列名1, 列名2... FROM 表名 WHERE 條件;示…

Leetcode-3488距離最小相等元素查詢

依舊二分&#xff0c;鏈接如下3488. 距離最小相等元素查詢 看題目是個循環數組&#xff0c;記得當時做過一道什么題也是循環數組&#xff0c;就想著直接數組復制一下&#xff0c;然后跟上一道題一樣&#xff0c;用hashmap來存儲value的值以及value對應下標的vector。 和靈神的…

C++中的關聯容器

文章目錄使用關聯容器定義關聯容器關鍵字類型的要求pair類型用作返回類型關聯容器上的操作關聯容器的迭代器關聯容器和算法添加元素刪除元素map的下標操作訪問元素無序容器對關鍵字的要求關聯容器支持高效的關鍵字查找和訪問。兩個主要的關聯容器的類型是map和set。其中map中的…

【Git】git提交代碼報錯Git: husky > pre-commit

git提交代碼報錯原因 這個問題是因為當你在終端輸入git commit -m “XXX”,提交代碼的時候,pre-commit(客戶端)鉤子&#xff0c;它會在Git鍵入提交信息前運行做代碼風格檢查。如果代碼不符合相應規則&#xff0c;則報錯&#xff0c;而它的檢測規則就是根據.git/hooks/pre-commi…

Unity開發者快速認識Unreal 的C++(六)GameMode之PlayerController

繼承關系&#xff1a;Aactor&#xff0c;INavAgentInterface <--- AController<--- PlayerController &#xff0c;PlayerController也是一個Actor,繼承了Actor的一些通用的屬性和工具函數下圖是PlayerController初始化組件的一個子階段從圖中可以得到的信息是&#xf…

Vue 3 服務端渲染(SSR)與客戶端渲染(CSR)的區別及解決方案

1. SSR與CSR的區別1.1. SSR的原理服務端渲染&#xff08;SSR&#xff09;是在服務器端將 Vue 組件渲染為 HTML 字符串&#xff0c;并將其發送給客戶端。這種方式與客戶端渲染&#xff08;CSR&#xff09;不同&#xff0c;后者是在瀏覽器中執行 JavaScript 來生成 HTML。在 SSR …

Matlab快速回顧

一1.數值 顯示 格式format style 設置eg: pi format longE;or2.清除指令clc 清除命令行窗口clear 清除工作區cls3.搜索路徑設置path(path,E:\ads\)oraddpath4.M文件用戶把要實現的命令寫在一個以.m為擴展的文件中&#xff0c;然后由matlab系統進行解讀&#xff0c;最后運行結果…

開源低代碼+AI引擎:百特搭企業級開發平臺的演進

在數字化轉型進入深水區的今天&#xff0c;企業應用開發面臨前所未有的復雜挑戰&#xff1a;既要快速響應業務需求&#xff0c;又要確保系統靈活可控&#xff1b;既要降低技術門檻&#xff0c;又要保障核心安全。傳統開發模式與單一形態的低代碼工具已難以滿足多層次需求。融合…

學習 Android(十五)NDK進階及性能優化

學習 Android&#xff08;十五&#xff09;NDK進階及性能優化 對 NDK 相關知識有了初步的了解之后&#xff0c;我們可以更加深入的去學習 NDK 相關知識&#xff0c;接下來&#xff0c;我們將按照以下步驟進行深入學習&#xff1a; 深入理解JNI調用過程和性能消耗常見 JNI 坑&am…

QT5.12.8 QTabWidget 透明樣式QSS

/* 設置QTabWidget本身 :不加也行*/ QTabWidget#aaa_tabwdt {background: transparent;border: none; /* 移除邊框可能有助于透明效果 */ }/* 標簽頁內的容器部件 :必須加&#xff0c;標簽也才會透明 */ QTabWidget#aaa_tabwdt QWidget, QTabWidget#aaa_tabwdt QFrame {backgro…

【FAQ】Script導出SharePoint 目錄文件列表并統計大小

一、只導出文件列表的方法 1) 保存腳本&#xff08;建議名&#xff1a;D:\tmp\Export-SharePoint-FileList.ps1&#xff09; <# 導出 SharePoint 指定文件夾&#xff08;含子文件夾&#xff09;的文件列表到 CSV&#xff08;不統計大小&#xff09; 前提&#xff1a;已安…