【Linux】關于權限的理解

目錄

一、Linux用戶的分類

1.Linux下的兩種用戶

2.兩種用戶提示符的區別

3.用戶的切換方法

二、Linux的權限管理

1.文件訪問者分類

2.常見文件類型

3.文件訪問權限

4.權限檢查邏輯

5.文件權限的表示方式

三、與文件訪問權限相關的設置方法

1.前提:

2.如何修改文件或目錄權限

指令:

①符號模式(字母表示)

②數字模式(八進制)

③常用選項

④特殊權限

⑤典型使用場景

⑥注意事項

3.修改文件或目錄的所有者或所屬組

指令:

①常用選項

②示例

③注意事項

④chmod和chown的區別

4.修改文件的所屬組

指令

①常用選項

②示例

③注意事項

④chgrp和chown的區別

5.權限掩碼umask

①umask作用

②如何查看當前umask

③如何修改umask

④常見umask

⑤注意事項

四、目錄權限

1.目錄各權限作用

2.粘滯位的作用

3.如何設置粘滯位

①符號模式(更推薦)

②數字模式(八進制)

4.如何查看粘滯位

①使用?ls -l?查看

②使用?stat?查看

5.粘滯位和 SUID/SGID 的區別

6.注意事項


一、Linux用戶的分類

1.Linux下的兩種用戶

①超級用戶(root):可以在Linux系統下作任何事,不受限制。

②普通用戶:在Linux系統下只能做一定權限內的事,受到約束。

2.兩種用戶提示符的區別

超級用戶(root)的命令提示符是“#”,普通用戶的命令提示符是“$”

3.用戶的切換方法

切換用戶指令:su

①root用戶切換到普通用戶(無需輸入普通用戶口令)

su + 空格 + 普通用戶名,即: su user

②普通用戶切換到root用戶

su + 空格 + root? (su之后都可以省略不寫)

然后輸入root用戶口令

二、Linux的權限管理

1.文件訪問者分類

①文件及文件目錄的所有者:u(User)

②文件和文件目錄的所有者所在的組的用戶:g(Group)

③其他用戶:o(other)

注:三種身份在進行認證時,只能選擇一種身份。

2.常見文件類型

①-:普通文件(文本、可執行程序、庫基本都屬于普通文件)

②d:目錄文件

③b:塊設備文件(磁盤文件等)

④c:字符設備文件(鍵盤文件、顯示器文件等)

⑤p:管道文件

⑥l:軟連接

⑦s:套接口文件

注:Linux系統中文件后綴名沒有直接意義(但不代表不用)

3.文件訪問權限

r :可讀權限

w :可寫權限

x:可執行權限

- :表示所在權限位置沒有權限

4.權限檢查邏輯

當用戶嘗試訪問文件時,系統按以下順序匹配身份并應用對應權限:

  1. 擁有者(Owner)

    • 若用戶是文件的所有者,直接應用?owner?權限,忽略后續檢查

  2. 所屬組(Group)

    • 若用戶不是所有者,但屬于文件的所屬組,則應用?group?權限,忽略后續檢查

  3. 其他用戶(Others)

    • 若用戶既不是所有者,也不在所屬組中,則應用?others?權限。

注:

  • 優先級是單向的:一旦匹配到身份(如?owner),后續身份(group/others)的權限不會生效。

  • 組權限的局限性:即使用戶屬于多個組,系統僅檢查文件所屬組,而非用戶的所有組。

5.文件權限的表示方式

①字符表示

r--:表示僅可讀

-w-:表示僅可寫

--x:表示僅可執行

rw-:表示僅可讀可寫

rwx:表示可讀可寫可執行

---:表示無權限

②八進制數值表示

????權限符號????????????????二進制????????????????八進制
????????r????????????????100????????????????4
????????w????????????????010????????????????2
????????x????????????????001????????????????1
????????rw????????????????110????????????????6
????????rx????????????????101????????????????5
????????wx????????????????011????????????????3
????????rwx????????????????111????????????????7
????????---????????????????000????????????????0

三、與文件訪問權限相關的設置方法

1.前提:

只有文件擁有者和 root 可以修改文件權限。

2.如何修改文件或目錄權限

指令:

chmod——名稱來源于change mode

基本語法:chmod [選項] 權限模式 文件/目錄

①符號模式(字母表示)
  • 用戶類別

    • u:所有者(user)

    • g:所屬組(group)

    • o:其他用戶(others)

    • a:所有用戶(all,默認值)

  • 操作符

    • +:添加權限

    • -:移除權限

    • =:直接設置權限

  • 權限類型

    • r:讀(4)

    • w:寫(2)

    • x:執行(1)

示例:

②數字模式(八進制)
  • 權限用 3 位八進制數表示,分別對應?所有者其他用戶

  • 權限值:

    • 4:讀(r)——對應2進制:100

    • 2:寫(w)——對應2進制:010

    • 1:執行(x)——對應2進制:001

    • 權限組合通過相加得到(如?rwx=4+2+1=7)。

示例:

③常用選項
選項作用
-R遞歸修改目錄及其子內容的權限
-v顯示權限變更的詳細信息
-c類似?-v,但僅顯示修改過的文件
--reference=FILE參照某個文件的權限設置目標文件

示例:

④特殊權限
  • SUID(Set User ID)

    • 用戶執行文件時臨時獲得所有者權限。

    • 設置:chmod u+s file?或數字模式前綴?4(如?4755)。

  • SGID(Set Group ID)

    • 用戶執行文件時臨時獲得所屬組權限,或目錄下新建文件繼承組權限。

    • 設置:chmod g+s dir?或數字模式前綴?2(如?2755)。

  • Sticky Bit

    • 僅允許所有者刪除/重命名目錄下的文件(如?/tmp)。

    • 設置:chmod +t dir?或數字模式前綴?1(如?1777)。

示例:

⑤典型使用場景

⑥注意事項
  1. 權限順序:符號模式下操作順序為?用戶類別→操作符→權限(如?u+rx)。

  2. 安全風險:謹慎使用?777?或?-R 777,避免過度開放權限。

3.修改文件或目錄的所有者或所屬組

指令:

chown——名稱來源change owner

基本語法:chown [選項] 新所有者:新所屬組 文件/目錄

注:可以單獨修改所有者或組,也可以同時修改

①常用選項
選項作用
-R遞歸修改目錄及其子內容的所有者/組
-v顯示修改的詳細信息(verbose)
-c類似?-v,但僅顯示修改過的文件
--reference=FILE參照某個文件的所有者/組設置目標文件
-h修改符號鏈接本身的所有者(默認修改鏈接指向的文件)
②示例

1. 修改文件的所有者

2. 修改目錄的所有者及組(遞歸)

3. 參照另一個文件設置權限

4. 修改符號鏈接的所有者(默認修改鏈接指向的文件)

③注意事項

需要 root 權限

  • 普通用戶只能修改自己擁有的文件,root?可以修改任何文件的所有者。

  • sudo?提權:這個需要用root用戶將普通用戶添加進白名單,操作并不復雜,感興趣的可以自行了解

用戶和組必須存在

  • 如果指定的用戶或組不存在,chown?會報錯

目錄權限影響

  • 如果目錄的權限不允許寫入,即使是?root,也可能無法修改其子文件的所有者

④chmod和chown的區別

chown:修改?所有者/組(誰擁有文件)。

chmod:修改?權限(誰能讀/寫/執行文件)。

4.修改文件的所屬組

指令

chgrp——名稱來源于:change group

基本語法:chgrp [選項] 新組名 文件/目錄

  • 新組名:可以是組名(如?developers)或 GID(如?1001)。

  • 可以同時修改多個文件或目錄。

①常用選項
選項作用
-R遞歸修改目錄及其子內容的所屬組
-v顯示修改的詳細信息(verbose)
-c類似?-v,但僅顯示修改過的文件
--reference=FILE參照某個文件的組設置目標文件
-h修改符號鏈接本身的組(默認修改鏈接指向的文件)
②示例

1. 修改文件的所屬組

2. 遞歸修改目錄的所屬組

3. 參照另一個文件設置組

4. 修改符號鏈接的組(默認修改鏈接指向的文件)

③注意事項

需要權限

  • 普通用戶只能修改自己擁有的文件的組,且必須是該組的成員

  • root?可以修改任何文件的組。

  • 使用?sudo?提權:感興趣的自行了解

組必須存在

  • 如果組不存在,chgrp?會報錯

④chgrp和chown的區別

chgrp:僅修改?(如?chgrp dev file)。

chown:可以同時修改?所有者和組(如?chown user:dev file)。

5.權限掩碼umask

①umask作用
  • 文件/目錄創建時,系統會使用?umask?值來屏蔽(去除)某些權限。

  • 默認權限

    • 文件:0666(即?rw-rw-rw-

    • 目錄:0777(即?rwxrwxrwx

但實際上我們所創建的文件和目錄,看到的權限往往不是上面的默認值,原因就是創建文件或目錄的時候還要受到 umask的影響。

假設默認權限是mask

則實際創建的出來的文件權限是:

二進制計算表示:

  • 最終權限 =?mask & ~umask

八進制計算表示:

  • 最終權限 = mask?- umask 權限

符號表示:

  • umask 也可以使用?u/g/o?和?r/w/x?表示:

②如何查看當前umask

輸出結果:

③如何修改umask

臨時修改(僅當前會話有效)

永久修改(對所有用戶生效)

  • 修改?/etc/profile?或用戶?~/.bashrc

  • 重新加載配置:

④常見umask
umask文件權限目錄權限適用場景
0000666rw-rw-rw-777rwxrwxrwx開放權限(不安全)
0022644rw-r--r--755rwxr-xr-x默認推薦(用戶可讀寫,其他只讀)
0027640rw-r-----750rwxr-x---組內共享,其他用戶無權限
0077600rw-------700rwx------僅所有者可訪問(最嚴格)
⑤注意事項
  1. umask 是權限的“反碼”

    • umask=022?表示?去掉?w?權限(即?rw-r--r--)。

  2. root 用戶的默認 umask 通常是?022,普通用戶可能是?002

  3. umask 不影響已有文件,僅對新創建的文件/目錄生效。

四、目錄權限

1.目錄各權限作用

可執行權限(x): 如果目錄沒有可執行權限, 則無法cd到目錄中

可讀權限(r): 如果目錄沒有可讀權限, 則無法用ls等命令查看目錄中的文件內容

  • 目錄的?r?權限僅允許查看文件名列表(需配合?x?才能讀取文件內容)

可寫權限(w): 如果目錄沒有可寫權限, 則無法在目錄中創建文件, 也無法在目錄中刪除文件

但是這并不科學

上面的目錄權限說明只要用戶具有目錄的寫權限, 用戶就可以刪除目錄中的文件, 而不論這個用戶是否有這個文件的寫權限,但是我張三創建的一個文件, 憑什么可以被你李四刪掉?

于是Linux引入了粘滯位

2.粘滯位的作用

  • 用于目錄(對普通文件無效)。

  • 允許用戶創建文件,但只能刪除自己擁有的文件(防止誤刪他人文件)。

3.如何設置粘滯位

①符號模式(更推薦)

②數字模式(八進制)
  • 粘滯位對應?權限數字的最前面一位

    • 1?表示粘滯位(如?1777

    • 0?表示無粘滯位(如?0755

4.如何查看粘滯位

使用?ls -l?查看

如果目錄有粘滯位,權限的?其他用戶(others)執行位?x?會變成?t

輸出結果:

  • 其他用戶rwt?表示:

    • rw-:可讀寫,不可執行

    • rwx:可讀寫可執行

    • rwt:其他用戶可讀寫 + 粘滯位

使用?stat?查看

5.粘滯位和 SUID/SGID 的區別

細心的朋友應該注意到了,這里就是前面提到過的特殊權限

特殊權限作用適用對象
SUID用戶執行時臨時獲得所有者權限可執行文件
SGID用戶執行時臨時獲得組權限,或目錄下新建文件繼承組可執行文件/目錄
粘滯位僅允許所有者刪除文件目錄

6.注意事項

粘滯位一般是給目錄設置,而且一般是共享目錄

共享目錄一般只有root用戶有權限創建


本文有些長,若有錯漏之處,煩請各位指正。

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

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

相關文章

前端antd,后端fastapi,解決文件上傳

一、技術架構概述 前端框架:React Ant Design 5.x 使用antd的Upload組件(支持拖拽/多文件/分片) 后端框架:Python FastAPI 利用UploadFile類處理文件流 傳輸協議:HTTP FormData(兼容性強) 二…

?????? 模擬題及答案 ?????? 大模型Clouder認證:RAG應用構建及優化

考試注意事項: 一、單選題(21題) 檢索增強生成(RAG)的核心技術結合了什么? A. 圖像識別與自然語言處理 B. 信息檢索與文本生成 C. 語音識別與知識圖譜 D. 數據挖掘與機器學習 RAG技術中,“建立索引”步驟不包括以下哪項操作? A. 將文檔解析為純文本 B. 文本片段分割(…

為什么建立 TCP 連接時,初始序列號不固定?

主要原因有兩個方面: 很大程度上避免歷史報文被下一個相同四元組的 TCP 連接接收問題(主要方面)防止黑客偽造相同序列號的 TCP 報文被接收 接下來,詳細說說第一點 假設每次建立 TCP 連接時,客戶端和服務端的初始序列…

VScode-使用技巧-持續更新

一、Visual Studio Code - MACOS版本 復制當前行 shiftoption方向鍵?? 同時復制多行 shiftoption 批量替換換行 在查找和替換面板中,你會看到一個 .? 圖標(表示啟用正則表達式)。確保這個選項被選中,因為我們需要使用正則…

【瑤池數據庫訓練營及解決方案本周精選(探索PolarDB,參與RDS遷移、連接訓練營)】

一、訓練營 數據庫遷移訓練營 自建數據庫運維難?本次訓練營教您遷移至云數據庫 RDS,高可用架構跨區容災,降本增效!模擬教程 實戰演練,零基礎也能上手。 (一)開營時間 2025年4月8日-6月2日16…

Xamarin勸退之踩坑筆記

初級代碼游戲的專欄介紹與文章目錄-CSDN博客 我的github:codetoys,所有代碼都將會位于ctfc庫中。已經放入庫中我會指出在庫中的位置。 這些代碼大部分以Linux為目標但部分代碼是純C的,可以在任何平臺上使用。 源碼指引:github源…

使用ray擴展python應用之流式處理應用

流式處理就是數據一來,咱們就得趕緊處理,不能攢批再算。這里的實時不是指瞬間完成,而是要在數據產生的那一刻,或者非常接近那個時間點,就做出響應。這種處理方式,我們稱之為流式處理。 流式處理的應用場景…

火狐安裝自動錄制表單教程——仙盟自動化運營大衍靈機——仙盟創夢IDE

打開火狐插件頁面 安裝完成 使用 功能 錄制瀏覽器操作 錄入地址 開始操作 錄制完成 在當今快速發展的軟件開發生態中,自動化測試已從一種新興技術手段,轉變為保障軟件質量與開發效率不可或缺的關鍵環節。其重要性體現在多個維度,同時&#x…

小程序 - 視圖與邏輯

個人簡介 ??????個人主頁: 魔術師 ??學習方向: 主攻前端方向,正逐漸往全棧發展 ??個人狀態: 研發工程師,現效力于政務服務網事業 ????人生格言: “心有多大,舞臺就有多大。” ??推薦學習: ??Vue2 ??Vue3 ??Vue2/3項目實戰 ??Node.js實戰 ??T…

【LLM應用開發】上下文記憶的解決方案(主流全面)

一、前言 上下文記憶(Contextual Memory)解決方案的作用: 提升 AI(尤其是大語言模型,LLM)的對話連貫性和個性化。 本文將介紹幾個主流的實現方式。 二、🧠 什么是上下文記憶? 在對…

C/C++ 面試復習筆記(2)

C語言如何實現快速排序算法? 答案:快排是一種分治算法,選擇一個基準元素,將數據劃分成兩部分,然后遞歸排序 補充: void quick_sort(int arr[], int start, int end) {//判斷是否需要排序if (start > …

2025吉林CCPC 題解(前六題)

// Problem: J - Odd-Even Game // Contest: Virtual Judge - sdccpc20250527 // URL: https://vjudge.net/contest/719585#problem/J // Memory Limit: 1024 MB // Time Limit: 1000 ms // 簽到題 // Powered by CP Editor (https://cpeditor.org)#include <bits/std…

Q: dify知識庫模塊主要庫表和字段

【回到目錄】~~~~【回到問題集】 Q: dify知識庫模塊主要庫表和字段 A: 表1&#xff1a;datasets 知識庫表 name 知識庫名稱 index_struct 向量索引node 表2&#xff1a;document 文檔表 name 文檔名稱 word_count 字數 doc_form 分段類型(hierarchical_model、qa_model、te…

NodeMediaEdge快速上手

NodeMediaEdge快速上手 簡介 NodeMediaEdge是一款部署在監控攝像機網絡前端中&#xff0c;拉取Onvif或者rtsp/rtmp/http視頻流并使用rtmp/kmp推送到公網流媒體服務器的工具。 通過云平臺協議注冊到NodeMediaServer后&#xff0c;可以同NodeMediaServer結合使用。使用圖形化的…

通用前端框架項目靜態部署到Hugging Face Space的實踐指南

背景介紹 在輕量級展示前端項目的場景中,Hugging Face Space 提供了一個便捷的靜態托管平臺。需求是將無后端服務的Vite的 Vue項目部署到Hugging Face Space 上。其實無論是基于Vite的Vue/React項目,還是使用Webpack構建的工程化方案,都可以通過兩種方式將其部署到Space:自…

Android studio 查看aar源碼出現/* compiled code */

如圖查看aar源碼時看不到具體實現&#xff0c;在排除是sdk版本導致的問題后&#xff0c;下面說解決方法 打開設置&#xff0c;找到插件 輸入decompiler 搜索 這個是自帶的反編譯工具&#xff0c;啟用就好了

Spark實時流數據處理實例(SparkStreaming通話記錄消息處理)

所用資源&#xff1a; 通過網盤分享的文件&#xff1a;spark-streaming-kafka-0-8-assembly_2.11-2.4.8.jar等4個文件 鏈接: https://pan.baidu.com/s/1zYHu29tLgDvS_L2Ud-22ZA?pwdhnpg 提取碼: hnpg 1.需求分析 &#xff1a; 假定有一個手機通信計費系統&#xff0c;用戶通…

Vue3處理number輸入框避免NaN

在 Vue3 中處理 number 類型輸入框避免顯示 NaN&#xff0c;核心在于正確處理用戶輸入的非數字值。以下是幾種解決方案&#xff1a; 方案1&#xff1a;使用字符串中轉 計算屬性&#xff08;推薦&#xff09; vue 復制 下載 <template><input v-model"input…

Python自動化之selenium語句——瀏覽器設置顯示尺寸、截圖、刷新網頁

目錄 一、瀏覽器設置最大化、最小化 1.瀏覽器最大化 2.瀏覽器最小化 二、瀏覽器打開的位置、尺寸 1.瀏覽器打開位置 2.瀏覽器打開尺寸 三、瀏覽器截圖 1.截圖語句 2.運行成功后查看 四、刷新網頁 上一節實現了打開瀏覽器、打開指定網址、關閉瀏覽器的操作&#xff0c…

model.classifier:分類頭

model.classifier:分類頭 分類頭(model.classifier)含義 在基于Transformer架構的模型(如BERT、GPT等 )用于分類任務時,“分類頭(model.classifier)” 是模型的一個重要組成部分。以Hugging Face的Transformers庫為例,許多預訓練模型在完成通用的預訓練任務(如語言…