Linux操作系統從入門到實戰(五)詳細講解Linux權限概念

Linux操作系統從入門到實戰(五)詳細講解Linux權限概念

  • 前言
  • 一、Linux中兩種用戶
    • 1.1 超級用戶(root)
    • 1.2 普通用戶
    • 1.3 切換用戶命令
  • 二、Linux權限管理
    • 2.1 文件訪問者的分類:誰能訪問文件?
    • 2.2 文件類型
    • 2.3 基本權限:能對文件做什么?
    • 2.4 權限的“長相”:
    • 2.5 為什么需要權限?
  • 三、文件訪問權限的相關設置方法與命令
    • 1. chmod:
    • 2. chown:
    • 3. chgrp:
    • 4. umask:
    • 5. file指令:
    • 6. 使用 sudo 分配權限
  • 四、粘滯位


前言

  • 在之前的內容里,我們深度解析了操作系統的本質,一步步搭建起 Linux 環境,還系統掌握了 Linux 基礎指令的運用。
  • 但要想真正玩轉 Linux 系統,其權限管理機制是繞不開的核心關鍵。
  • 從今天起,就讓我們切入 Linux 權限這一重要模塊,層層拆解其概念與邏輯,為全面掌握 Linux 系統的管理與運用筑牢根基,開啟更深入的 Linux 探索之旅

我的個人主頁,歡迎來閱讀我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的Linux知識文章專欄
歡迎來閱讀指出不足
https://blog.csdn.net/2402_83322742/category_12879535.html?spm=1001.2014.3001.5482


一、Linux中兩種用戶

  • 我們平時用的Linux操作系統里有兩種??:超級??(root)、普通??

1.1 超級用戶(root)

  • 就像家里“大權在握”的大當家,在 Linux 系統里想干啥就干啥,沒有限制
  • 比如隨意修改系統設置、安裝或刪除軟件、查看所有文件等,甚至可以刪除自己。
  • 它的命令提示符是 #,只要看到 #,就知道現在是超級用戶
    在這里插入圖片描述

1.2 普通用戶

  • 類似家里的其他成員,能做的事有限。
  • 比如只能用自己的東西(訪問自己權限內的文件),不能隨便動系統關鍵設置或別人的文件。它的命令提示符是 $,看到 $ 就知道是普通用戶在操作。
    在這里插入圖片描述

1.3 切換用戶命令

  • 從超級用戶切到普通用戶:比如從 root 切到普通用戶 user,輸 su user不用輸密碼,直接切換。就像大當家想找普通成員做事,一叫就來。
  • 從普通用戶切到超級用戶:輸 su(或 suroot),這時系統會讓你輸 root 的密碼,驗證通過才能切換。好比普通成員想變成大當家,得先證明自己有這個資格(輸對密碼)。
    在這里插入圖片描述

二、Linux權限管理

2.1 文件訪問者的分類:誰能訪問文件?

Linux 把文件的“訪問者”分成三類,就像家里的文件被不同人使用:

  1. 所有者(User,縮寫 u

    • 就像文件的“主人”,比如你創建了一個文件,你就是它的所有者。
    • 權限最大,能決定誰能看、誰能改這個文件。
  2. 所屬組用戶(Group,縮寫 g

    • 比如你和同學組成一個小組,小組里的成員就是“所屬組用戶”。
    • 組內成員共享一些權限,方便團隊協作(比如一起修改小組作業文件)。
  3. 其他用戶(Others,縮寫 o

    • 既不是所有者,也不在所屬組里的人,比如陌生人。
    • 權限最小,通常只能看文件內容,不能隨便改

2.2 文件類型

Linux 里的文件“長相”用第一個字符表示,常見類型:

  • d(目錄,文件夾):像一個抽屜,里面可以裝很多文件和子目錄(比如 ~/Documents)。
    在這里插入圖片描述

  • -(普通文件):就是普通的文件,比如文檔(.txt)、圖片(.jpg)、腳本(.sh)等。
    在這里插入圖片描述

  • l(軟鏈接):類似 Windows 的快捷方式,指向另一個文件或目錄(比如 ln -s 目標文件 快捷方式名)。

  • b(塊設備文件)c(字符設備文件):和硬件相關,比如硬盤(/dev/sda)、鍵盤、鼠標(不用太糾結,記住是硬件就行)。

  • 其他類型(ps):暫時用得少,先記住前三個最常用的!

2.3 基本權限:能對文件做什么?

每種用戶(所有者/組/其他用戶)都有三種“操作權限”,用 rwx 表示,對應數字 421

  1. 讀權限(r,數字 4

    • 對文件:可以查看文件內容(比如用 cat 文件名 查看)。
    • 對目錄:可以查看目錄里有哪些文件(比如用 ls 目錄名 列出內容)。
      例子:你可以看一本書的內容,就是有“讀”權限。
      在這里插入圖片描述
  2. 寫權限(w,數字 2

    • 對文件:可以修改文件內容(比如用 nano 文件名 編輯)。
    • 對目錄:可以在目錄里新建、刪除、重命名文件(注意!是改目錄里的內容,不是目錄本身的名字)。
      例子:你可以在筆記本上寫字,就是有“寫”權限。
  3. 執行權限(x,數字 1

    • 對文件:可以運行這個文件(比如腳本 .sh 文件,需要 x 權限才能用 ./腳本名 運行)。
    • 對目錄:可以進入這個目錄(比如用 cd 目錄名 進入)。
      例子:你能打開一個抽屜(進入目錄),或者啟動一個程序(運行文件),就是有“執行”權限。

如果沒有某個權限,就用 - 表示,比如 r-- 表示只有讀權限,沒有寫和執行權限。

2.4 權限的“長相”:

當你用 ls -l 查看文件時,會看到類似這樣的結果:

在這里插入圖片描述

-rwxr-xr-- 1 user group 1024 Jan 1 00:00 文件名
  • 第一個字符是文件類型(這里是 -,表示普通文件)。
  • 接下來 9 個字符分成三組,每組 3 個:
    • 第一組(前 3 位):所有者(u)的權限(這里 rwx,表示可讀、可寫、可執行)。
    • 第二組(中間 3 位):所屬組(g)的權限(這里 r-x,表示可讀、可執行,不可寫)。
    • 第三組(最后 3 位):其他用戶(o)的權限(這里 r--,表示只讀)。

也可以用數字表示權限,比如 rwx4+2+1=7r-x4+0+1=5,上面的例子權限就是 754

2.5 為什么需要權限?

假設你有一個筆記本:

  • 所有者(你自己):可以隨便看、寫、甚至燒掉它(rwx)。
  • 所屬組(家人):可以看里面的內容,也可以打開筆記本(進入目錄),但不能隨便修改(r-x)。
  • 其他用戶(陌生人):只能遠遠看一眼封面(只讀,r--),不能打開或修改。

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

1. chmod:

基本功能與格式

chmod 命令用于設置文件的訪問權限,其基本格式是 chmod [參數] 權限 文件名。要注意,只有文件的擁有者和超級用戶 root 才有權力改變文件的權限。

常用選項

-R 這個選項很實用,當你要修改一個目錄下所有文件和子目錄的權限時,使用 -R 就可以遞歸地進行修改。

權限值格式
  • 用戶標識符 + / - / = 權限字符

    • + :為權限范圍添加權限代號所代表的權限。
    • - :從權限范圍中移除權限代號所代表的權限。
    • = :給權限范圍賦予權限代號所代表的權限。
    • 用戶符號:
      • u :文件擁有者。
      • g :擁有者所在組的用戶。
      • o :其他用戶。
      • a :所有用戶。
    • 實例:
      • chmod u++ a.txt :給文件 a.txt 的擁有者添加寫權限。
      • chmod o+x a.txt :移除文件 a.txt 其他用戶添加寫權限。
      • chmod a=x a.txt :給文件 a.txt 的所有用戶都只賦予執行權限。
        在這里插入圖片描述
  • 三位 8 進制數字
    每個 8 進制數字對應一種用戶的權限,從左到右依次是擁有者、所屬組、其他用戶。比如讀權限是 4,寫權限是 2,執行權限是 1。

    • 實例:
      • chmod 664 a.txt :擁有者和所屬組用戶有讀寫權限,其他用戶只有讀權限。
        在這里插入圖片描述

      • chmod 640 a.txt :擁有者有讀寫權限,所屬組用戶只有讀權限,其他用戶沒有任何權限。

2. chown:

chown 命令用來修改文件的擁有者,格式為 chown [參數] 用戶名 文件名

  • 實例:
    • chown user1 f1 :把文件 f1 的擁有者修改為 user1
    • chown -R user1 filegroup1 :使用 -R 遞歸地將目錄 filegroup1 及其下面所有文件和子目錄的擁有者都修改為 user1

3. chgrp:

chgrp 命令用于修改文件或目錄的所屬組,格式是 chgrp [參數] 用戶組名 文件名。常用選項 -R 可遞歸修改文件或目錄的所屬組。

  • 實例:
    • chgrp users /abc/f2 :把文件 /abc/f2 的所屬組修改為 users

4. umask:

功能
`umask` 可以用來查看或修改文件掩碼。新建文件默認權限是 0666(即所有用戶都有讀寫權限),新建目錄默認權限是 0777(所有用戶都有讀寫執行權限)。不過實際創建的文件和目錄權限往往不是這些默認值,這是因為創建時會受到 `umask` 的影響。實際創建出來的文件權限是默認權限 `mask` 與 `~umask` 按位與的結果。
格式與說明
格式為 `umask 權限值`,超級用戶默認掩碼值是 0022,普通用戶默認是 0002。將現有的存取權限減去權限掩碼后,就得到創建文件時的預設權限。 - 實例: - `umask 755` :設置文件掩碼為 755。 - `umask` :查看當前的文件掩碼。 - `umask 044` :將文件掩碼設置為 044。 ![在這里插入圖片描述](https://i-blog.csdnimg.cn/direct/b72141e5ec1342c6a07122388b0138a1.png)

5. file指令:

file 指令用于識別文件類型,語法是 file [選項] 文件或目錄...

常用選項
![在這里插入圖片描述](https://i-blog.csdnimg.cn/direct/22c7bf029a554dc7adc57d89a4a9d9ca.png)
  • -c :詳細顯示指令執行過程,方便排查錯誤或分析程序執行情況。
    在這里插入圖片描述

  • -z :嘗試解讀壓縮文件的內容。

6. 使用 sudo 分配權限

修改 /etc/sudoers 文件
  • 可以通過修改 /etc/sudoers 文件來分配權限。
  • /etc/sudoers 文件定義了哪些用戶可以使用 sudo 命令以超級用戶權限執行特定命令。
  • 不過修改這個文件要格外小心,因為一旦配置錯誤,可能導致系統出現問題
  • 通常使用 visudo 命令來編輯該文件,它會在保存時檢查語法錯誤。比如,你可以在文件中添加一行,讓某個用戶可以使用 sudo 執行特定命令,像這樣 username ALL=(ALL) ALL ,這就表示用戶 username 可以在任何主機上以任何用戶身份執行任何命令。

在這里插入圖片描述

使用 sudo 調用授權的命令

格式:sudo –u 用戶名 命令

  • sudo:獲取臨時超級用戶權限的命令。
  • -u 用戶名:指定以哪個用戶身份執行命令。
  • 命令:具體要執行的操作。
    實例 sudo -u root /usr/sbin/useradd u2 :表示當前用戶借助 sudo,以 root 身份執行 /usr/sbin/useradd u2 命令(即創建用戶 u2)。這要求當前用戶在 /etc/sudoers 中被授予了相關權限,否則會提示權限不足。

簡單總結:先通過修改 /etc/sudoers 文件設定用戶能以什么身份執行哪些命令,再用 sudo -u 來實際調用這些授權的命令,實現權限的靈活分配,既保證安全又方便普通用戶執行特定管理任務。

四、粘滯位

在我們剛剛的講解中

  • 可執行權限(x)
    想象目錄是一個房間,可執行權限(x)就像“開門的鑰匙”。

    如果沒這把鑰匙(目錄無 x 權限),你連房間都進不去(無法 cd 進入目錄),更別說做其他操作了。

  • 可讀權限(r)
    進了房間(有 x 權限)后,可讀權限(r)就像“房間里的燈”。

    如果沒燈(目錄無 r 權限),雖然你人在房間里(能 cd 進入),但啥也看不見(無法用 ls 等命令查看目錄里有什么文件)。

  • 可寫權限(w)
    可寫權限(w)相當于“在房間里放置或拿走東西的權力”。

    只要有這個權力(目錄有 w 權限),不管房間里的東西(文件)是誰的,你都能在房間里創建新東西(新建文件),或者把別人的東西拿走(刪除文件)

這就像:張三在房間里放了個盒子(文件),李四只要有房間的 w 權限,就能把張三的盒子拿走(刪除文件),這看起來是不是不太合理?

為了讓目錄里的文件不被隨意刪除,Linux 引入了粘滯位。給目錄加上粘滯位(用 chmod +t)后,這個目錄就像被上了一把“特殊的鎖”,規定:只有以下三種人能刪除目錄里的文件

  1. 超級管理員(root):超級管理員有最高權限,能處理任何文件。
  2. 目錄的所有者:目錄就像一個“私人領地”,領地的主人(目錄所有者)有權力管理里面的東西。
  3. 文件的所有者:自己的東西(文件),自己當然能決定是否刪除。

舉個例子:

  • /home 目錄加粘滯位(chmod +t /home)后,用戶 litao 就不能隨便刪除 root 或其他人創建的文件了。原本 litao 能刪 rootroot.c 文件(因為 /home 目錄有 w 權限),但加了粘滯位后,系統會檢查刪除者是否是超級管理員、目錄所有者或文件所有者,不滿足就不讓刪,這樣就保證了文件的安全性。

以上就是這篇博客的全部內容,下一篇我們將繼續探索Linux的更多精彩內容。

我的個人主頁
歡迎來閱讀我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的Linux知識文章專欄
歡迎來閱讀指出不足
https://blog.csdn.net/2402_83322742/category_12879535.html?spm=1001.2014.3001.5482

非常感謝您的閱讀,喜歡的話記得三連哦

在這里插入圖片描述

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

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

相關文章

91.首次使用Maui的體驗與建議 C#例子 Maui例子

最近我開始接觸Maui,記錄一下我的首次使用體驗,希望能給大家提供一些參考。 安裝與創建項目 首次接觸Maui,其實遇到了不少疑惑。首先,通過Visual Studio的安裝器安裝Maui開發環境。安裝過程還算順利,但需要注意的是&…

【家政平臺開發(100)】終結篇,破局·拓新:家政平臺未來發展的戰略藍圖

本【家政平臺開發】專欄聚焦家政平臺從 0 到 1 的全流程打造。從前期需求分析,剖析家政行業現狀、挖掘用戶需求與梳理功能要點,到系統設計階段的架構選型、數據庫構建,再到開發階段各模塊逐一實現。涵蓋移動與 PC 端設計、接口開發及性能優化,測試階段多維度保障平臺質量,…

小程序滾動條隱藏(uniapp版本)

單獨指定頁面隱藏&#xff08;找到對應的scroll-view&#xff09; <style> /* 全局隱藏滾動條樣式 */ ::-webkit-scrollbar { display: none; width: 0; height: 0; color: transparent; background: transparent; } /* 確保scroll-view組件也隱藏滾動條 */ …

5月3日日記

上午睡到自然醒&#xff08;其實六點多被我爸叫起來搶火車票&#xff0c;發現明天中午的軟臥候補上了&#xff0c;挺好的&#xff09;然后繼續睡到快10點。 中午吃的什么來著&#xff0c;好像是西紅柿炒雞蛋和藜麥飯&#xff0c;有個魚不是很想吃就沒吃 中午打了兩把吃雞&…

【Spring】Spring中8種常見依賴注入使用示例

在 Spring 中&#xff0c;IoC 注入可以通過多種方式實現&#xff0c;涵蓋不同場景的依賴管理。以下是 8 種常見場景的詳細示例及說明&#xff0c;結合 XML、注解和 Java 配置類三種方式。 1. 構造器注入&#xff08;推薦方式&#xff09; 通過構造器傳遞依賴&#xff0c;確保對…

藍橋杯 擺動序列

擺動序列 原題目鏈接 題目描述 如果一個序列的奇數項都比前一項大&#xff0c;偶數項都比前一項小&#xff0c;則稱為一個擺動序列。 即對于任意整數 i&#xff08;i ≥ 1&#xff09;滿足&#xff1a; a?? < a????&#xff0c;a???? > a?? 小明想知道&…

REINFORCE蒙特卡羅策略梯度算法詳解:python從零實現

&#x1f9e0; 向所有學習者致敬&#xff01; “學習不是裝滿一桶水&#xff0c;而是點燃一把火。” —— 葉芝 我的博客主頁&#xff1a; https://lizheng.blog.csdn.net &#x1f310; 歡迎點擊加入AI人工智能社區&#xff01; &#x1f680; 讓我們一起努力&#xff0c;共創…

深入了解Linux系統—— 操作系統

一、馮諾依曼體系結構 現在我們常見的計算機&#xff08;筆記本電腦等&#xff09;和不常見的計算機&#xff08;服務器&#xff09;它們都滿足馮諾依曼體系。 我們可以把計算機理解成一個個硬件組成的 輸入設備&#xff1a;鍵盤、鼠標、攝像頭、網卡、磁盤等輸出設備&#xf…

RPG7.準備GAS的工作

1.啟動項目&#xff0c;為項目添加gameplayability插件 2.添加abilitysystemcomponent的c類 3.添加attributeset的c類 4.往build.cs內添加模塊 5.進入CharacterBase內&#xff0c;添加gameplayasystem和attributbeset&#xff0c;覆寫PossessedBy()和GetAbilitysystemcomponent…

使用gitea發布軟件包

1、新建hello工程 &#xff08;1&#xff09;HelloApplication.java package cn.ac.trimps.sv;import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplicati…

從請求到響應:初探spring web

引入&#xff1a; 首先小編想分享下一些開發小知識 2000年——手寫servlet/JSP時代 在這個階段中&#xff0c;那時候寫后端代碼&#xff0c;可謂是個麻煩事。 畢竟什么都要自己干 發來的請求都要寫extends HttpServlet的類&#xff0c;手動在web.xml配置 <servlet>…

Redis從入門到實戰實戰篇2

面試重點&#xff1a;本篇包含悲觀鎖&#xff0c;樂觀鎖&#xff0c;多線程以及分布式鎖的知識 目錄 3.優惠卷秒殺 3.1 -全局唯一ID 3.2 -Redis實現全局唯一Id 3.3 添加優惠卷 3.4 實現秒殺下單 3.5 庫存超賣問題分析 3.6 樂觀鎖解決超賣問題 3.7 優惠券秒殺-一人一單 …

LabVIEW實驗室項目中使用類模塊與仿真

在 LabVIEW 程序開發過程中&#xff0c;借鑒面向對象的類思想進行模塊化架構設計&#xff0c;并結合仿真功能&#xff0c;能夠高效應對不同場景的開發需求。 ? 以實驗室場景為例&#xff0c;LabVIEW 開發常面臨設備種類繁多、調試周期漫長&#xff0c;且硬件難以一次性到位的情…

ES6入門---第二單元 模塊三:對象新增、

一&#xff1a;對象簡潔語法&#xff1a; 1、變量簡潔 <script>let name Strive;let age 18;let json {name, //name:name,age //age:age};console.log(json);</script> 2、函數簡潔 let json {name, //name:name,age, //age:age/* showA:functi…

Python創意:AI圖像生成——用代碼繪制未來藝術

當代碼邂逅藝術:AI圖像生成的革命 在數字藝術領域,一場由Python和AI技術引領的革命正在悄然發生。無需專業繪畫技巧,僅憑幾行代碼,普通人也能創造出令人驚嘆的藝術作品。AI圖像生成技術打破了藝術創作的門檻,讓想象力成為唯一的限制。 核心技術方案 1. 技術架構 我們采…

一、Shell 腳本基礎

一、Shell 簡介 1.Shell 的定義與作用 Shell&#xff0c;通常被稱為命令行解釋器 (Command Line Interpreter)&#xff0c;是用戶 &#x1f464; 與 Linux/Unix 操作系統內核進行交互 ?? 的“橋梁” &#x1f309;。它扮演著翻譯官 &#x1f5e3;? 的角色&#xff1a; 接…

青少年編程與數學 02-018 C++數據結構與算法 21課題、機器學習與人工智能算法

青少年編程與數學 02-018 C數據結構與算法 21課題、機器學習與人工智能算法 一、線性回歸算法二、邏輯回歸算法三、K近鄰算法&#xff08;K-Nearest Neighbors, KNN&#xff09;四、決策樹算法五、支持向量機&#xff08;SVM&#xff09;六、神經網絡算法七、聚類算法八、降維算…

【數據結構】——單鏈表練習(1)

一、移除鏈表元素 題目鏈接&#xff1a; 移除鏈表元素 那么根據題目的要求我們大致明白這道題要做什么&#xff0c;就是將一個鏈表中&#xff0c;和指定的值相等的元素的節點刪除&#xff0c;然后返回刪除后的新的鏈表&#xff0c;然后題目給我們傳入的參數是鏈表的頭節點和指…

AI大模型基礎設施:主流的幾款開源AI大語言模型的本地部署成本

以下是對目前主流開源AI大語言模型&#xff08;如DeepSeek R1、LLaMA系列、Qwen等&#xff09;本地部署成本的詳細分析&#xff0c;涵蓋計算機硬件、顯卡等成本&#xff0c;價格以美元計算。成本估算基于模型參數規模、硬件需求&#xff08;GPU、CPU、RAM、存儲等&#xff09;以…

AI生成視頻檢測方法及其相關研究

目錄標題 【1】AI-Generated Video Detection via Spatio-Temporal Anomaly Learning【2】DeCoF: Generated Video Detection via Frame Consistency【2.1】Spatiotemporal Convolutional Neural Networks (STCNN) rely on spatial artifacts【2.2】Capturing Universal Spatia…