【linux基礎(四)】對Linux權限的理解

💓博主CSDN主頁:杭電碼農-NEO💓
?
?專欄分類:Linux從入門到開通?
?
🚚代碼倉庫:NEO的學習日記🚚
?
🌹關注我🫵帶你學更多操作系統知識
? 🔝🔝


在這里插入圖片描述

Linux權限

  • 1. 前言
  • 2. shell命令以及運行原理
  • 3. 普通用戶與超級用戶
    • 3.1 對指令提權
  • 4. 文件的權限以及角色屬性
    • 4.1 角色屬性
    • 4.2 文件的類型
    • 4.3 文件的讀寫權限
    • 4.4 讀寫權限的二進制表示
  • 5. 文件的權限的修改方式
    • 5.1 文件權限的八進制修改方式
  • 6. 修改文件的擁有者/所屬組
  • 7. 對文件夾的權限理解
  • 8. 默認權限以及權限掩碼
    • 8.1 權限掩碼相關的計算
    • 8.2 修改權限掩碼
  • 9. 總結以及拓展

1. 前言

Linux的內容是錯綜復雜的,是學不完的
專欄Linux從入門到開通只講解
比較重要的知識以及面試常考的內容

本章重點:

  1. 對shell外殼和Linux內核的理解
  2. 普通用戶和超級用戶的區別
  3. 文件對應的三個權限
  4. 修改文件權限或擁有者/所屬組
  5. 目錄文件和普通文件的區別
  6. 默認權限以及權限掩碼

在這里插入圖片描述


2. shell命令以及運行原理

Linux操作系統嚴格來說是:
Linux內核+Linux外殼+配套程序

在這里插入圖片描述
外殼也就是shell
那么為什么要存在外殼呢?
有兩個原因:

  1. 命令行解釋(充當媒婆)

內核的設計非常復雜,使用者無法
直接向Linux內核進行溝通,也無法
直接讀懂內核執行完命令的結果
所以shell外殼充當"媒婆"這一角色
來往于操作者和內核之間

  • 外殼程序將用戶輸入的指令解釋后
    傳遞給內核
  • 內核執行命令后得到的結果經外殼
    處理后傳遞給用戶
  1. 保護內核(充當保安)

有時用戶想要內核執行的命令過于離譜
或者使用的指令內核根本做不到
那么此指令根本不會"打擾"內核
它會在shell外殼進行翻譯時就被駁回!

  • 就像你暗戀的女生有男朋友了
    你還要媒婆幫你說媒

  • 這個請求會在媒婆這一階段就駁回!

在這里插入圖片描述

注:shell是對所有命令行解釋器的統稱

Linux下的shell外殼是bash
而windows下的shell外殼是
圖形化界面


3. 普通用戶與超級用戶

一個Linux賬號只有一個超級用戶:
root
創建的其余用戶都叫做普通用戶
比如我的Linux下有幾個普通用戶:

在這里插入圖片描述
假如你想要切換用戶

使用指令: su 用戶名

在這里插入圖片描述

注:超級用戶切換為普通用戶不用輸密碼
普通用戶切換為root或其他普通用戶需要密碼


3.1 對指令提權

假如我現在是普通用戶
但我只想用root賬號執行一條命令
如果切換為root那么太麻煩了

使用指令: sudo 提權的指令

這樣就可以進行提取了
使用sudo命令的前提是:
此用戶被添加到了sudoers白名單
(作為了解,后期會講)


4. 文件的權限以及角色屬性

當我們使用ll指令查看文件信息時
會打印出這樣的信息:

在這里插入圖片描述

紅色框中有十列
藍色框中有兩個名字

用以下的圖來理解:

在這里插入圖片描述


4.1 角色屬性

先看用藍色和紫色框起來的地方
前者是代表文件的擁有者
后者是代表文件的所屬組
所屬組的名字是此組組長的名字!

對于文件來說,除了擁有者和所屬組
還有other這個概念
other代表除了擁有者和所屬組的其他人

比如現在我使用用戶kwy創建一個文件:

在這里插入圖片描述

擁有者就變成了kwy


4.2 文件的類型

再看最左邊十列,第一列代表文件類型
可以發現,普通文件的第一列是:-
而目錄文件的第一列是: d

在這里插入圖片描述

對于現階段而言,只需要掌握
文件夾和普通文件即可!


4.3 文件的讀寫權限

前十列的后九行代表了文件的讀寫權限
它們三個三個為一組

在這里插入圖片描述

比如kwy.txt文件:
擁有者可讀可寫不可執行
所屬組可讀可寫不可執行
other可讀不可寫不可執行

在這里插入圖片描述

下面這張表格可以總結:

在這里插入圖片描述
注:讀對應指令:cat等等
寫對應指令:nano等等

然而可執行暫時不用管


4.4 讀寫權限的二進制表示

有權限代表1,沒有權限代表0
上面的表格可以總結出以下二進制形式:

在這里插入圖片描述

這里使用八進制來表示是因為
某用戶的最大權限是111
111的十進制是7,沒有超過8!

kwy.txt文件的二進制形式可以寫做:

在這里插入圖片描述
6 6 4

5. 文件的權限的修改方式

想要修改用戶的讀寫權限:

使用指令: chmod [參數] 權限 文件名

在這里插入圖片描述

比如我把kwy.txt文件加上wx權限:

在這里插入圖片描述

注:只有文件的擁有者或root可修改文件權限

若你沒有讀權限去訪問文件時會報錯:

在這里插入圖片描述

root是超級管理員,權限不能限制root的訪問!


5.1 文件權限的八進制修改方式

修改文件權限時,除了使用±號
還可以用八進制進行修改:

將kwy.txt文件改成所有人可讀可寫:

在這里插入圖片描述

這里的666的二進制形式是:
110 110 110
所有人的讀寫權限都存在,而執行權限無

將kwy.txt文件的other所有權限去掉:

在這里插入圖片描述


6. 修改文件的擁有者/所屬組

修改擁有者:

使用指令: chown 用戶名 文件名

將kwy.txt文件的擁有者改成root:

在這里插入圖片描述

修改所屬組

使用指令: chgrp 所屬組 文件名

需要注意的點:

很明顯一個普通用戶是無法把自己的文件
給另外一個用戶的,因為這十分不安全!
只有root賬號或者使用sudo提權
才能將文件的擁有者/所屬組修改!


7. 對文件夾的權限理解

和普通文件不同,文件夾的讀寫
和可執行權限對應的功能十分不同

  • 讀權限( r ):用戶能否查看文件夾下文件的信息
  • 寫權限( w ):用戶能否在此文件夾下創建/刪除文件
  • 可執行權限( x ): 用戶能否進入此文件夾

比如在我的目錄下有一個source文件夾:

在這里插入圖片描述

擁有者可以進入文件夾,并且可以創建/刪除文件
也可以使用ls相關指令查看文件的信息
但是所屬組和other不能創建或刪除文件

現在切換為用戶kwy并且進入此文件夾:

在這里插入圖片描述

當我創建文件時,權限就被限制了!


8. 默認權限以及權限掩碼

我們先創建一個目錄和一個普通文件:

在這里插入圖片描述

我們會發現以下規律:

  • 目錄的默認權限為:7 7 5
  • 普通文件默認權限: 6 6 4

這是為什么呢?

其實文件的默認權限有兩個因素決定:

  1. 文件的起始權限
  2. 文件的權限掩碼

文件的起始權限:

  • 目錄的起始權限為:7 7 7
  • 普通文件的起始權限為: 6 6 6

文件的權限掩碼:
查看文件的權限掩碼:

使用指令: umask

我的機器上默認為002
用起始權限777-002=775
剛好就等于目錄的默認權限
而起始權限666-002=664
剛好也等于普通文件的默認權限


8.1 權限掩碼相關的計算

其實文件的默認權限并不是簡單的等于:

起始權限 - 權限掩碼

它的公式是:

最終權限=起始權限&(~權限掩碼)

公式不好記,但是說起來簡單易懂

  1. 將權限掩碼和起始權限變成二進制
  2. 將這兩個二進制對一一對應
  3. 權限掩碼為1,起始權限為1時,起始權限改為0
  4. 權限掩碼為0,起始權限也為0時,起始權限不變

可以用下面這張圖來理解:

在這里插入圖片描述


8.2 修改權限掩碼

Linux系統的功能做的很全
即使有些功能不經常用

修改權限掩碼:

使用指令: umask 期望的權限掩碼的八進制

比如現在將權限掩碼修改為777:

在這里插入圖片描述

此時,新創建的文件或文件夾什么權限都沒了!


9. 總結以及拓展

Linux中的權限十分分明,一個用戶
能干什么不能干什么都已經規定好了
不會出現你的某位同事刪掉你的代碼這種事情

拓展: 粘滯位

假設你和你的同事在同一個目錄下工作
你要創建文件就必須有目錄的w權限
而擁有w權限也不一定完全安全.
可能你的小組某個"間諜"
會刪除你們小組所有文件

在這里插入圖片描述

然而想要正常工作又必須將w權限放開

為了解決可以創建文件而不能刪除他人文件
這個問題,引申出了粘滯位

詳情請看:粘滯位講解


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

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

相關文章

八、Linux下,grep/wc/管道符/echo/重定向符/tail如何使用?

1、grep命令 (1)主要用于文件 (2)主要作用是“通過關鍵字,過濾文件行” (3)示例: 2、wc命令 (1)統計文件的行數、單詞數等 (2)示例…

react之路由的安裝與使用

一、路由安裝 路由官網2021.11月初,react-router 更新到 v6 版本。使用最廣泛的 v5 版本的使用 npm i react-router-dom5.3.0二、路由使用 2.1 路由的簡單使用 第一步 在根目錄下 創建 views 文件夾 ,用于放置路由頁面 films.js示例代碼 export default functio…

一文預覽 | 8 月 16 日 NVIDIA 在 WAVE SUMMIT深度學習開發者大會 2023精彩亮點搶先看!

由深度學習技術及應用國家工程研究中心主辦,百度飛槳和文心大模型承辦的 WAVE SUMMIT深度學習開發者大會2023,將于 8 月 16 日在北京與大家見面。NVIDIA 作為技術合作伙伴,將攜手百度飛槳參與這場技術盛會。 在這次大會中,NVIDIA…

Java 項目日志實例基礎:Log4j

點擊下方關注我,然后右上角點擊...“設為星標”,就能第一時間收到更新推送啦~~~ 介紹幾個日志使用方面的基礎知識。 1 Log4j 1、Log4j 介紹 Log4j(log for java)是 Apache 的一個開源項目,通過使用 Log4j,我…

RabbitMq交換機類型介紹

RabbitMq交換機類型介紹 在RabbitMq中,生產者的消息都是通過交換器來接收,然后再從交換器分發到不同的隊列,再由消費者從隊列獲取消息。這種模式也被成為“發布/訂閱”。 分發的過程中交換器類型會影響分發的邏輯。 直連交換機&#xff1a…

【計算機視覺|生成對抗】逐步增長的生成對抗網絡(GAN)以提升質量、穩定性和變化

本系列博文為深度學習/計算機視覺論文筆記,轉載請注明出處 標題:Progressive Growing of GANs for Improved Quality, Stability, and Variation 鏈接:[1710.10196] Progressive Growing of GANs for Improved Quality, Stability, and Vari…

神經網絡基礎-神經網絡補充概念-51-局部最優問題

概念 局部最優問題是在優化問題中常見的一個挑戰,特別是在高維、非凸、非線性問題中。局部最優問題指的是算法在優化過程中陷入了一個局部最小值點,而不是全局最小值點。這會導致優化算法在某個局部區域停止,而無法找到更好的解。 解決方案…

安防監控視頻云存儲平臺EasyNVR出現內核報錯的情況該如何解決?

安防視頻監控匯聚EasyNVR視頻集中存儲平臺,是基于RTSP/Onvif協議的安防視頻平臺,可支持將接入的視頻流進行全平臺、全終端分發,分發的視頻流包括RTSP、RTMP、HTTP-FLV、WS-FLV、HLS、WebRTC等格式。 近期有用戶聯系到我們,EasyNVR…

kafka集成篇

kafka的Java客戶端 生產者 1.引入依賴 <dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-clients</artifactId><version>2.6.3</version></dependency>2.生產者發送消息的基本實現 /*** 消息的發送?*/ …

SAP 預留(Reservation)詳解

相信使用SAP的話&#xff0c;對SAP的SAP預留(Reservation)已經有所了解&#xff0c;而且經常使用作業的&#xff0c;并且在很多方案中都使用得到&#xff0c;下面我就簡單總結下我所了解的SAP預留(Reservation)&#xff0c;希望對一些需要幫助的人&#xff0c;有所指點。 首先…

分類預測 | MATLAB實現DRN深度殘差網絡多輸入分類預測

分類預測 | MATLAB實現DRN深度殘差網絡多輸入分類預測 目錄 分類預測 | MATLAB實現DRN深度殘差網絡多輸入分類預測預測效果基本介紹程序設計參考資料 預測效果 基本介紹 1.分類預測 | MATLAB實現DRN深度殘差網絡多輸入分類預測 2.代碼說明&#xff1a;MATLAB實現DRN深度殘差網絡…

LVS集群和nginx負載均衡

目錄 1、基于 CentOS 7 構建 LVS-DR 群集。 2、配置nginx負載均衡。 1、基于 CentOS 7 構建 LVS-DR 群集。 1.部署LVS負載調度器 1>安裝配置工具 [rootnode6 ~]# yum install -y ipvsadm 2>配置LVS虛擬IP&#xff08;VIP地址&#xff09; [rootnode6 ~]# ifconfig ens…

32.Netty源碼之服務端如何處理客戶端新建連接

highlight: arduino-light 服務端如何處理客戶端新建連接 Netty 服務端完全啟動后&#xff0c;就可以對外工作了。接下來 Netty 服務端是如何處理客戶端新建連接的呢&#xff1f; 主要分為四步&#xff1a; md Boss NioEventLoop 線程輪詢客戶端新連接 OP_ACCEPT 事件&#xff…

VB+SQL自動點歌系統設計與實現

摘 要 隨著社會的發展,人類的進步,21世紀人們的生活的水平有所提高,為了滿足人們對生活的需要,豐富業余生活,就需要有一些娛樂的設施來彌補這些空缺,所以開發了自動點歌系統。 論文詳細論述了系統總體設計思想、數據庫設計以及功能模塊設計等,給出了自動點歌系統一般流程…

算法與數據結構(七)--堆

一.堆 1.堆的定義 堆是計算機科學中一類特殊的數據結構的通常&#xff0c;堆通常可以被看做是一顆完全二叉樹的數組對象。 堆的特性 1.它是完全二叉樹&#xff0c;除了樹的最后一層結點不需要是滿的&#xff0c;其他的每一層從左到右都是滿的&#xff0c;如果最后一層結點不…

管理類聯考——邏輯——真題篇——按知識分類——匯總篇——二、論證邏輯——支持加強——第三節——分類3——類比題干支持

文章目錄 第三節 支持加強-分類3-類比題干支持真題(2017-28)-支持加強-正面支持-表達“確實如此”真題(2017-36)-支持加強-正面支持-表達“確實如此”真題(2017-39)-支持加強-正面支持-方法有效或方法可行,但多半不選擇方法無惡果真題(2017-50)-支持加強真題(2018-2…

linux 文件權限識別及其修改

一、文件權限認識 在 Linux 系統中&#xff0c;一切皆文件&#xff0c;目錄也是一種文件形式叫目錄文件&#xff0c;它們的屬性主要包含&#xff1a;索引節點(inode)&#xff0c;類型、權限屬性、鏈接數、所歸屬的用戶和用戶組、最近修改時間等內容。 如下為根目錄下目錄&…

華創云鼎面試:java后端開發

華創云鼎面試: 1、項目:項目業務介紹、項目人員組成 2、分布式鎖用過哪些 基于數據庫的鎖&#xff1a;可以使用關系型數據庫的事務和行級鎖來實現分布式鎖。通過在數據庫中創建一個標志位或特定的鎖表來表示資源的鎖定狀態&#xff0c;其他進程在訪問該資源之前需要先獲取該鎖…

尋路算法(Java 實例代碼源碼包下載)

目錄 尋路算法 Java 實例代碼 src/runoob/graph/Path.java 文件代碼&#xff1a; 尋路算法 圖的尋路算法也可以通過深度優先遍歷 dfs 實現&#xff0c;尋找圖 graph 從起始 s 點到其他點的路徑&#xff0c;在上一小節的實現類中添加全局變量 from數組記錄路徑&#xff0c;fr…

8月18日,每日信息差

1、中國空間站收獲階段性應用成果。?截至目前&#xff0c;空間站已安排在軌實施了110個空間科學研究與應用項目&#xff0c;涉及空間生命科學與人體研究、微重力物理和空間新技術領域&#xff0c;獲得原始實驗數據近100TB&#xff0c;下行了近300個實驗樣品&#xff0c;部分項…