Linux權限命令詳解

Linux權限命令詳解

文章目錄

  • Linux權限命令詳解
    • 一、什么是權限?
    • 二、權限的本質
    • 三、Linux中的用戶
    • 四、linux中文件的權限
      • 4.1 文件訪問者的分類(人)
      • 4.2 文件類型和訪問權限(事物屬性)
    • 五、快速掌握修改權限的做法【第一種】
      • 5.1 修改擁有者的權限
      • 5.2 修改所屬組的權限
      • 5.3 修改other的權限
      • 5.4 修改多個角色的權限
      • 5.5 一鍵添加或刪除所有權限
      • 5.6 更改文件的擁有者
      • 5.7 更改文件的所屬組
      • 5.8 同時更改擁有者和所屬組
    • 六、快速掌握修改權限的做法【第二種】
      • 6.1 八進制
    • 七、文件類型
    • 八、可執行權限
    • 九、創建文件的默認權限
      • 9.1 權限掩碼
      • 9.2 修改umask
    • 十、目錄的權限

一、什么是權限?

權限就是通過一定的條件,攔住一部分人,給另一部分人權利,來訪問某種資源,比如vip,門禁之類的

二、權限的本質

權限和人有關,權限和事物的屬性有關

權限=人+事物屬性有關【人也就是相當于角色】

三、Linux中的用戶

  • linux有root用戶【超級管理員用戶】,普通用戶,那么我們怎么切換這兩種用戶呢?

  • 切換root用戶

su -
  • 切換普通用戶就是su后面加個用戶名
su 用戶名
  • 在linux中有三種“人”【角色】:擁有者,所屬組,other

  • 其中第一個lin就是擁有者,第二個是所屬組,其他就是other

在這里插入圖片描述

  • su 用戶名,是從root變成普通用戶,剛剛上面也說了

  • 但是我不想直接變成root,但是我想以root的身份執行一個工作,怎么做呢?

    • 在執行命令前加上一個sudo

在這里插入圖片描述

  1. 那么為什么sudo對指令進行提權的時候,輸入的是我們自己密碼?那樣不是很不安全,用root身份想干啥干啥
  2. 默認普通目前無法執行sudo ,暫時不解決,之后用vim再來解決這個問題

四、linux中文件的權限

4.1 文件訪問者的分類(人)

  • 文件和文件目錄的所有者:u—User(中國平民 法律題)
  • 文件和文件目錄的所有者所在的組的用戶:g—Group(不多說)
  • 其它用戶:o—Others (外國人)

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

在這里插入圖片描述

在這里插入圖片描述

  • 文件的屬性權限一般有三種

    • r,讀
    • w,寫
    • x,可執行權限
  • 我們來看下面這里

[lin@shilin lesson1]$ ls -l
total 0
-rw-rw-r-- 1 lin lin 0 Dec  8 10:39 test.txt
[lin@shilin lesson1]$ 
  • 其中-rw-rw-r--是七個字符,我們先不管第一個字符
  • 來看后6個,33為一組,分別對應:擁有者,所屬組,other
    • 第一個字符:是否具有讀權限,【如果是,就r,否則,就是-】
    • 第二個字符:是否具有寫權限,【如果是,就是w,否則,就是-】
    • 第二個字符:是否具有可執行權限,【如果是,就是x,否則,就是-】

五、快速掌握修改權限的做法【第一種】

在這里插入圖片描述

  • 一個文件的權限,誰能修改?

    • 文件的擁有者
    • root
  • 用命令怎么修改呢

5.1 修改擁有者的權限

減擁有者的權限

chmod u-w test.txt

在這里插入圖片描述

加擁有者的權限

chmod u+rw test.txt

在這里插入圖片描述


5.2 修改所屬組的權限

減所屬組的權限

chmod g-rw test.txt

在這里插入圖片描述

加所屬組的權限

chmod g+rw test.txt

在這里插入圖片描述


5.3 修改other的權限

減other的權限

chmod o-rw test.txt

在這里插入圖片描述

加other的權限

chmod o+r test.txt

在這里插入圖片描述


5.4 修改多個角色的權限

那我想更改多個"人"【角色】的權限,怎么修改呢?
多個權限之間價格逗號即可~~【注意:一定是英文的!】

批量減少權限

chmod u-w,g-w test.txt

在這里插入圖片描述

批量添加權限

chmod u+w,g+w,o+w test.txt

在這里插入圖片描述

刪除所有權限

chmod u-rw,g-rw,o-rw test.txt

在這里插入圖片描述


5.5 一鍵添加或刪除所有權限

  • 這里的a就是all的意思【所有】

添加所有權限

chmod a+r test.txt

在這里插入圖片描述


刪除所有權限

chmod a-r test.txt

在這里插入圖片描述

  • 對于普通用戶,自身要受到對應權限的約束,即使這個文件是自己的!

在這里插入圖片描述

  • 對于root用戶,不受權限約束的!

在這里插入圖片描述

  • 對于其他用戶,文件對應的是other選項,這個選項是沒有讀和寫權限的

在這里插入圖片描述

注意:對于文件的擁有者,如果刪除了文件的擁有者權限,但是所屬組的沒有刪除,它也會禁止讀寫操作

在這里插入圖片描述

結論:權限只會匹配一次!

5.6 更改文件的擁有者

chown root test.txt

在這里插入圖片描述


我們回到上面的那里

  • 這個時候我們把擁有者的改成root用戶,但是所屬組還是原來的

在這里插入圖片描述

結論:身份識別的時候只識別一次,一旦匹配成功就不繼續匹配了,如果失敗就繼續匹配

5.7 更改文件的所屬組

chgrp root test.txt

在這里插入圖片描述

這個時候文件也就普通用戶都不屬于了

在這里插入圖片描述

這里如果再加上other的讀和寫的權限,就又可以了~~

chmod o+rw test.txt

在這里插入圖片描述

在這里插入圖片描述

5.8 同時更改擁有者和所屬組

chown lin:lin test.txt

在這里插入圖片描述

那么怎么沒有修改other的指令呢?

六、快速掌握修改權限的做法【第二種】

6.1 八進制

在這里插入圖片描述

  • 如上圖所示,如果有一個字符就代表1,如果是-就代表0

在這里插入圖片描述

我們想去掉所有人的所有權限可以這樣做

chmod 000 test.txt

在這里插入圖片描述

賦予所有權限就是下面這條命令

chmod 777 test.txt

在這里插入圖片描述

保留擁有者的讀寫權限

chmod 600 test.txt

在這里插入圖片描述

在這里插入圖片描述

七、文件類型

在windows使用的是后綴名來區分文件類型的
而在linux中是不通過后綴區分文件類型【不是linux不用后綴】

那么通過什么區分呢?

  • ls -l第一個屬性列

在這里插入圖片描述

  • -:普通文件,文本文件,可執行程序,庫等都叫做普通文件
  • d:目錄文件
  • b:塊設備文件
  • c:字符設備文件
  • p:管道文件
  • l:鏈接文件

我們來挨個介紹一下

  • 第一個-普通文件

平時創建的文件就是普通文件

在這里插入圖片描述

  • 第二個d目錄文件

在這里插入圖片描述

  • 第三個b塊設備文件

這個典型的代表就是磁盤

ls -l /dev/vda

在這里插入圖片描述

  • 第四個c字符文件

這個終端文件我們在linux命令章節講過了,這里就不再贅述

ls -l /dev/pts/

在這里插入圖片描述

  • 第五個p管道文件

我們創建一個管道文件

mkfifo pipe

在這里插入圖片描述

  • 這里就可以通過管道文件來進行輸出

在這里插入圖片描述

  • 第六個l鏈接文件
ln -s /home/lin/lesson1/test.txt xx.link

這個鏈接文件也就是相當于創建了一個快捷方式,直接指向了這個文件

在這里插入圖片描述

  • 如果刪除了源文件,那么這個快捷方式也就不能用了

在這里插入圖片描述

  • 比如linux的根目錄就有很多的鏈接文件

在這里插入圖片描述

八、可執行權限

我們了解了讀權限,寫權限,那么可執行權限是什么呢?如何理解?

是一個可執行的文件,也有可執行權限,才能執行

能執行 = 具有可執行權限 + 一個可執行文件

  • 如果我們要進入一個目錄,需要什么權限? ----> 進入一個目錄,需要x權限

我們來驗證一下:

  • 第一種情況:

在這里插入圖片描述

  • 第二種情況:

在這里插入圖片描述

  • 第三種情況:

在這里插入圖片描述

  • 可以看到去掉x權限就不能進入目錄了~~

小結一下:

  • 進入一個目錄需要x權限
  • 目錄的r權限:用戶能否查看指定目錄的文件信息
  • 目錄的w權限:決定用戶是否能在指定的目錄內新建,修改,刪除文件

九、創建文件的默認權限

linux創建文件的時候,為什么好像有默認權限?為什么是我們看到的樣子?

在這里插入圖片描述

  • Linux創建的普通文件,起始權限是:0666,去掉x的
  • Linux創建的目錄文件,起始權限是:0777,包含x的

  • 再看上面的權限,我們的創建的普通文件也不是666,而是664,目錄文件也不是777,而是775

9.1 權限掩碼

umask
  • 在創建文件的時候,要在起始權限中,過濾掉(不是簡單的減法)再umask中出現的權限

在這里插入圖片描述

9.2 修改umask

umask 0000

在這里插入圖片描述

  • 修改了umask后,創建出來的文件權限也發生了改變,所以是uamsk影響了我們的默認權限

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

在這里插入圖片描述

在這里插入圖片描述

umask:Linux中的權限掩碼!


十、目錄的權限

  • 為什么我們普通人竟然可以刪除別人的文件(包括root)合理嗎?

在這里插入圖片描述

  • 刪除一個文件和目標文件有關系嗎? ---->沒有關系!!!

  • 那么和誰有關系呢? ---- >和我所在的目錄有關系!!!

在這里插入圖片描述

  • 這個目錄是這個用戶的擁有者,在我自己的目錄里創建文件就要受到我管束~~

所以刪除文件是由這個目錄的擁有者來管理,刪除一個文件的本質就是修改這個目錄的內容

  • 所以創建一個目錄的時候是默認去掉寫權限的,一個外來用戶進入到這個目錄是不能進行創建文件的~~

本期內容就到這里了,感謝大家的收看,歡迎三連~~

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

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

相關文章

Spark-Streaming+Kafka+mysql實戰示例

文章目錄 前言一、簡介1. Spark-Streaming簡介2. Kafka簡介二、實戰演練1. MySQL數據庫部分2. 導入依賴3. 編寫實體類代碼4. 編寫kafka主題管理代碼5. 編寫kafka生產者代碼6. 編寫Spark-Streaming代碼總結前言 本文將介紹一個使用Spark Streaming和Kafka進行實時數據處理的示例…

實戰1-python爬取安全客新聞

一般步驟:確定網站--搭建關系--發送請求--接受響應--篩選數據--保存本地 1.拿到網站首先要查看我們要爬取的目錄是否被允許 一般網站都會議/robots.txt目錄,告訴你哪些地址可爬,哪些不可爬,以安全客為例子 2. 首先測試在不登錄的…

Docker Network(網絡)——8

目錄: Docker 為什么需要網絡管理Docker 網絡架構簡介 CNMLibnetwork驅動常見網絡類型 bridge 網絡host 網絡container 網絡none 網絡overlay 網絡docker 網絡管理命令 docker network createdocker network inspectdocker network connectdocker network disconne…

class072 最長遞增子序列問題與擴展【算法】

class072 最長遞增子序列問題與擴展【算法】 code1 300. 最長遞增子序列 // 最長遞增子序列和最長不下降子序列 // 給定一個整數數組nums // 找到其中最長嚴格遞增子序列長度、最長不下降子序列長度 // 測試鏈接 : https://leetcode.cn/problems/longest-increasing-subsequen…

830. 單調棧

?????? ??????830. 單調棧 - AcWing題庫 給定一個長度為 N 的整數數列,輸出每個數左邊第一個比它小的數,如果不存在則輸出 ?1?1。 輸入格式 第一行包含整數 N,表示數列長度。 第二行包含 N個整數,表示整數數列…

你知道MySQL中 group by 怎么優化嗎

更好的閱讀體驗,請點擊 YinKai s Blog。 ? 在 MySQL 中 group by 用于按照一個或多個列對結果集進行分組。在討論 group by 怎么優化之前,我們先來看看 group by 的執行流程,這樣我們才能對癥下藥。 group by 執行流程 ? 我們先用下面的 …

Ubuntu 18.04使用Qemu和GDB搭建運行內核的環境

安裝busybox 參考博客: 使用GDBQEMU調試Linux內核環境搭建 一文教你如何使用GDBQemu調試Linux內核 ubuntu22.04搭建qemu環境測試內核 交叉編譯busybox 編譯busybox出現Library m is needed, can’t exclude it (yet)的解釋 S3C2440 制作最新busybox文件系統 https:…

block-recurrent-transformer-pytorch 學習筆記

目錄 有依賴項1: 沒有依賴項,沒有使用例子 沒有依賴項2: 有依賴項1: GitHub - dashstander/block-recurrent-transformer: Pytorch implementation of "Block Recurrent Transformers" (Hutchins & Schlag et a…

gd32和stm32的區別

gd32和stm32的區別 現在的市場上有很多種不同類型的微控制器,其中比較常見的有兩種,即gd32和stm32。兩種微控制器都是中國和歐洲的兩個公司分別推出的,但是它們之間有很多區別,本文將會深入探討這些區別。 1.起源和歷史 gd32是…

2024年網絡安全競賽-Web安全應用

Web安全應用 (一)拓撲圖 任務環境說明: 1.獲取PHP的版本號作為Flag值提交;(例如:5.2.14) 2.獲取MySQL數據庫的版本號作為Flag值提交;(例如:5.0.22) 3.獲取系統的內核版本號作為Flag值提交;(例如:2.6.18) 4.獲取網站后臺管理員admin用戶的密碼作為Flag值提交…

udp多播組播

import socket ,struct,time# 組播地址和端口號 MCAST_GRP 239.0.0.1 MCAST_PORT 8888 # 創建UDP socket對象 sock socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP) # 綁定socket對象到本地端口號 # sock.bind((MCAST_GRP, MCAST_PORT)) …

【4】PyQt輸入框

1. 單行文本輸入框 QLineEdit控件可以輸入單行文本 from PyQt5.QtWidgets import QApplication, QWidget, QLineEdit, QVBoxLayout from PyQt5.QtCore import * from PyQt5.QtGui import QIcon import sysdef init_widget(w: QWidget):# 修改窗口標題w.setWindowTitle(單行輸…

前端面試——CSS面經(持續更新)

1. CSS選擇器及其優先級 !important > 行內樣式 > id選擇器 > 類/偽類/屬性選擇器 > 標簽/偽元素選擇器 > 子/后臺選擇器 > *通配符 2. 重排和重繪是什么?瀏覽器的渲染機制是什么? 重排(回流):當增加或刪除dom節點&…

【面試經典150 | 二叉樹】從中序與后序遍歷序列構造二叉樹

文章目錄 寫在前面Tag題目來源題目解讀解題思路方法一:遞歸 寫在最后 寫在前面 本專欄專注于分析與講解【面試經典150】算法,兩到三天更新一篇文章,歡迎催更…… 專欄內容以分析題目為主,并附帶一些對于本題涉及到的數據結構等內容…

Android : Room 數據庫的基本用法 —簡單應用

1.Room介紹: Android Room 是 Android 官方提供的一個持久性庫,用于在 Android 應用程序中管理數據庫。它提供了一個簡單的 API 層,使得使用 SQLite 數據庫變得更加容易和方便。 以下是 Android Room 的主要特點: 對象關系映射…

9.MySQL 索引

目錄 ???????概述 概念: 單列索引 普通索引 創建索引 查看索引 刪除索引 唯一索引 創建唯一索引 刪除唯一索引 主鍵索引 組合索引 創建索引 全文索引 概述 使用全文索引 空間索引 內部原理 相關算法: hash算法 二叉樹算法 …

Spring基于XML文件配置AOP

AOP AOP,面向切面編程,是對面向對象編程OOP的升華。OOP是縱向對一個事物的抽象,一個對象包括靜態的屬性信息,包括動態的方法信息等。而AOP是橫向的對不同事物的抽象,屬性與屬性、方法與方法、對象與對象都可以組成一個…

12.10多種編碼方式,編碼方案選擇策略(遞歸級聯),PDE,RLE代碼

作者如何選擇和設計編碼方案,以實現高效的解壓縮和高壓縮比?BtrBlocks是否適用于所有類型的數據? 選擇和設計編碼方案: 結合多種高效編碼方案:BtrBlocks 通過選擇一組針對不同數據分布的高效編碼方案,實現…

js判斷是否對象自身為空

文章目錄 一、前言二、JSON.stringify三、for in 配合 hasOwnProperty四、Object.keys五、Object.getOwnPropertyNames六、Object.getOwnPropertyNames 結合 Object.getOwnPropertySymbols七、Reflect.ownKeys八、最后 一、前言 如何判斷一個對象為空? 先上結論&a…