【Linux 學習計劃】-- 權限

目錄

權限是什么

權限的本質

權限(用戶)的修改

權限的匹配機制

目錄的權限

初始權限(文件和目錄)

粘滯位

結語


權限是什么

在現實世界中就有權限的概念,也就是,一部分人能做但是其他沒有相關身份的人做不了

舉個例子,愛某藝的會員,當你充了會員之后,那么有很多需要會員才能看的劇你就能看了,但是這并不對非會員開放

這就是權限

那么放在Linux中就是,一個文件(或者目錄),你有相關的權限,你在能對這個文件執行相關的操作

權限的本質

權限的本質就是:角色 + 事物本身的屬性

角色的概念

在Linux里,我們有角色這個概念,我們可以用su指令(或者su -)進行切換角色

比如我直接su,然后默認切換成root,而我們root也叫做超級用戶,root可以在Linux里面為所欲為,一句話,權限只是用來限制普通人的,但是root顯然不是普通人

最后還可以不切換身份,直接sudo提權

身份的概念

而我們在權限章節里面,有一個身份·的概念:

擁有者,所屬組,other

我們來說一下擁有者,其實就是這個文件是誰的

所屬組也是一種身份,而不是擁有者也不是所屬組的就是other

(可能會有人疑惑為什么要有所屬組,試想一下,如果我們這時候要將一個文件分享給另一個人的話,如果沒有所屬組,那么我們就只能將other的權限全部打開,這就意味著如果這時候你的競爭對手很壞的話,那你就完蛋了,而現在我們可以將另一個人變成所屬組,那么other能不能看得到全部取決于你了)

事物本身的屬性

最后來講一講這個,其實很好理解,你可以在leedcode上面看電影嗎?顯然不行,因為leedcode使用來刷題用的

所以事物有沒有特權,取決于他的身份,他有了符合條件的身份之后才能做特殊的事情,其次就是,這個事物本身是可以支持做這些特殊的事情的

(你在愛某藝上面充再多你也不能在上面刷算法,因為愛某藝本來就不是用來刷算法的)

權限(用戶)的修改

在修改之前,我們需要知道權限在文件中是長什么樣的:

首先我們看到藍色的框框,這個就是文件(或目錄,下文會重點講)權限,而紅色框框分為左右兩個,其實就是擁有者和所屬組(other并不需要標識,因為不是擁有者也不是所屬組的就是other)

而我們的文件權限一共可以分為三個部分:

如上圖,分為三個部分,分別對應擁有者、所屬組、other的權限

每一個身份對應的權限分為三個:rwx

rwx 三個分別代表讀權限、寫權限、可執行權限

讀寫權限很容易理解,就是你能不能讀這個文件和能不能對這個權限進行寫入、修改內容操作

至于可執行,則是比如 .cpp 文件,需要通過g++操作變成對應可執行文件之后才能執行對應內容,或者是,Linux下一切皆文件,我們的指令就是可執行文件,我們所有的指令都是可執行的

而想要執行一個文件,需要有可執行權限的同時,還需要這個文件本身可執行

權限的修改相關操作指令

首先,因為權限分為三種身份,所以我們修改的時候也需要指明對應的角色來修改(當然不全是,下文會講到二進制的方式修改權限,這種就不需要指明身份了)

身份分為:u(user擁有者)、g(所屬組)、o(other)、a(all,代表一次性對上面三種身份同時進行操作)

而我們對應修改的指令則是 chmod

舉個例子:

chmod u-x,o-x big.txt

chmod u+x big.txt

chmod g-rw?big.txt

chmod a+rwx big.txt

諸如此類

同時我們還可以用二進制的方式進行權限的修改

指令同樣還是chmod

rwx,三個權限,我們可以看作三個二進制為,也就是111,那么rw-(-代表沒有)也就對應110,而111對應的10進制值就是421

比如rw-,對應的值就是6

最后我們有三個身份,也就是三組rwx,所以我們可以直接對三組進行修改

比如我們想讓擁有者和所屬組有讀寫權限,而other則只能讀,那么我們就可以這樣寫

chmod 664 filename

權限身份的修改

一個文件有擁有者、所屬組、other

而我們是可以對其進行修改的,但是只有對擁有者和所屬組的操作,因為不是他兩的就自動是other

修改擁有者:chown

修改所屬組:chgrp

舉個例子,我們要將一個文件的擁有者換成root(所屬組也是一樣的):

sudo chown root filename

sudo chgrp?root filename(修改所屬組)

當然chown還有一種特殊用法,也就是,如果你想要同時修改擁有者和所屬組的話,你可以直接這樣:

chown? name1:name2? filename

權限的匹配機制

首先我們來看一下這張圖

對于big.txtx這個文件來說,擁有者和所屬組都是hjx

但是擁有者什么權限都沒有,而所屬組什么權限都有

這時候如果hjx想讀這個文件的話,會發現讀不了,什么都干不了

這是因為,我們的系統會先看,你是不是擁有者,不是的話再去看是不是所屬組,不是的話就是other了

但是這時,我們系統看到,我們是擁有者了之后,那就認定了,你有沒有權限,他不管

這就是權限的匹配機制,只會匹配一次

目錄的權限

上文我們一直講的都是文件的權限,但其實目錄和文件是不一樣的

r:代表你能不能查看這個目錄里面的文件(比如cd進目錄之后能不能ls)

w:代表能否對目錄里的文件進行增刪改

x:能否 cd 進入目錄

初始權限(文件和目錄)

創建文件的起始權限:664

創建文件的起始權限:775

為什么是這樣的呢?其實是有原因的

首先,新建文件夾默認權限=0666,新建目錄默認權限=0777

而我們在Linux里面有一個指令叫做umask,也叫做權限掩碼

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

也就是說,我們的權限是由umask決定的,先對其進行取反,然后再用起始權限與上,就是最終的權限,換句話說,如果我們此時將umask修改成0777的話,那么初始的不管是文件還是目錄,權限都會是000

因為0777取反之后,對應位置就是全0,那么&的時候,就會全部變成0

粘滯位

粘滯位是長這個樣子的:rwt(也就是將原來的x換成t)

假想一下,你現在想要創建一個文件,然后你想和另一個人共享這個文件,那么你只能創建一個目錄,將other的權限全部放開

為什么說只能這么做呢,因為單單對文件權限進行操作是沒有用的,不是你的文件,你雖然沒資格用,但是你可以刪啊,因為刪文件取決于目錄,就好比,雖然這個東西不是我的,但是你為什么要把它放在我家里?

但是這樣的話,就有一個隱患,你和另一個人可以看,但是所有人都可以看,因為大家都是other,而且不光可以看,還能刪

所以解決辦法就是粘滯位,也就是:

chmod o+t 目錄名字

粘滯位的作用就是,你想看,無所謂,這個不歸我管,但是你不能刪,刪除不了

結語

這篇文章到這里就結束啦!!~( ̄▽ ̄)~*

如果覺得對你有幫助的,可以多多關注一下喔

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

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

相關文章

okcc呼叫中心系統搭建的方案方式

傳統企業呼叫中心多采用 PC和手機軟件,很難與客戶保持良好的溝通。因此,需要建設一套呼叫中心系統來實現與客戶實時有效溝通。那么,呼叫中心搭建的方案方式有哪些呢?下面詳細介紹一下。 呼叫中心系統的搭建方式需根據企業規模、預算和業務需…

前端最新面試題及答案 (2025)

前端最新面試題及答案 (2025) JavaScript 核心 1. ES6+ 新特性 問題: 請解釋 ES6 中 let/const 與 var 的區別,以及箭頭函數的特點。 答案: let/const vs var: 作用域: let/const 是塊級作用域,var 是函數作用域 變量提升: var會提升變量,let/const不會(有暫時性死區) 重…

傳統輪椅逆襲!RDK + 激光雷達如何重塑出行體驗?

為滿足特殊群體智能化出行需求,攻克傳統輪椅技術短板,本項目研發了一款智能輪椅。該輪椅借助攝像頭與激光雷達,精準感知環境、檢測障礙物;融合激光 SLAM 技術和互聯網地圖,實現室內外無縫導航與自主避障;提…

go-中間件的使用

中間件介紹 Gin框架允許開發者在處理請求的過程中加入用戶自己的鉤子(Hook)函數這個鉤子函數就是中間件,中間件適合處理一些公共的業務邏輯比如登錄認證,權限校驗,數據分頁,記錄日志,耗時統計 1.定義全局中間件 pac…

【Linux】動靜態庫鏈接原理

📝前言: 這篇文章我們來講講Linux——動靜態庫鏈接原理 🎬個人簡介:努力學習ing 📋個人專欄:Linux 🎀CSDN主頁 愚潤求學 🌄其他專欄:C學習筆記,C語言入門基礎…

第八節第三部分:認識枚舉、枚舉的作用和應用場景

認識枚舉 枚舉的概述 枚舉的特點 枚舉的應用場景 代碼: 代碼一:認識枚舉 A(枚舉) package com.d6_enum;public enum A {//注意:枚舉類的第一行必須羅列的是枚舉對象的名字X,Y,Z;private String name;public String…

Android framework 中間件開發(二)

上篇文章中我們講述了怎么去開發中間件 Android framework 中間件開發(一) 這篇我們講一下怎么打包中間件給外部應用使用 目錄 1.新建項目 2.編寫jar包代碼 3.打包jar包 4.使用jar包 我們可以直接將系統編譯出來的framework的jar包拿出來直接用,但是為了安全起見,防止用戶調用…

FC7300 IO 無法正常輸出高低電平問題排查

現象:Port、Dio配置正常的情況下,IO寫或者翻轉函數正常執行后,IO電平未按照預期切換電平。 排查: 第一步:檢查PORTx_PCRy寄存器值: DWP: 域寫保護:此字段指示允許哪個內核或 DMA 寫…

7 個正則化算法完整總結

哈嘍!我是我不是小upper~之前和大家聊過各類算法的優缺點,還有回歸算法的總結,今天咱們來深入聊聊正則化算法!這可是解決機器學習里 “過擬合” 難題的關鍵技術 —— 想象一下,模型就像個死記硬背的學生&am…

如何有效的開展接口自動化測試?

🍅 點擊文末小卡片,免費獲取軟件測試全套資料,資料在手,漲薪更快 一、簡介 接口自動化測試是指使用自動化測試工具和腳本對軟件系統中的接口進行測試的過程。其目的是在軟件開發過程中,通過對接口的自動化測試來提高測…

我設計的一個安全的 web 系統用戶密碼管理流程

作為一名有多年經驗的前端,在剛開始學習web后端的時候,就對如何設計一個安全的 web 系統用戶密碼管理流程有很多疑問。之前自己也實踐過幾種方法,但一直覺得不是十分安全。 我們知道,用戶在注冊或登錄界面填寫的密碼是明文的&…

煉丹學習筆記3---ubuntu2004部署運行openpcdet記錄

前言 環境 cuda 11.3 python 3.8 ubuntu2004 一、cuda環境檢測 ylhy:~/code_ws/OpenPCDet/tools$ nvcc -V nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2021 NVIDIA Corporation Built on Sun_Mar_21_19:15:46_PDT_2021 Cuda compilation tools, release 11.3…

在 Linux 系統中過濾文件中的字符串

在 Linux 系統中過濾文件中的字符串,可以使用多種命令行工具實現。以下是幾種常見方法及詳細說明: 一、使用 grep 命令(最常用) grep 是 Linux 中最強大的文本搜索工具,支持正則表達式。 基礎語法: grep…

基于PXIE 總線架構的Kintex UltraScale 系列FPGA 高性能數據預處理板卡

基于PXIE 總線架構的Kintex UltraScale 系列FPGA 高性能數據預處理板卡 一款基于3U PXIE 總線架構的高性能數據預處理FMC 載板,板卡具有1 個FMC(HPC)接口,1 個X8 GTH 背板互聯接口,可以實現1 路PCIe x8。板卡采用Xili…

Java 使用 PDFBox 提取 PDF 文本并統計關鍵詞出現次數(附Demo)

目錄 前言1. 基本知識2. 在線URL2.1 英文2.2 混合 3. 實戰 前言 爬蟲神器,無代碼爬取,就來:bright.cn Java基本知識: java框架 零基礎從入門到精通的學習路線 附開源項目面經等(超全)【Java項目】實戰CRUD…

Vue百日學習計劃Day16-18天詳細計劃-Gemini版

重要提示: 番茄時鐘: 每個番茄鐘為25分鐘學習,之后休息5分鐘。每完成4個番茄鐘,進行一次15-30分鐘的長休息。動手實踐: DOM 操作和事件處理的理解高度依賴于實際編碼。請務必在瀏覽器中創建 HTML 頁面,并配…

SearchClassUtil

路徑掃描工具SearchClassUtil,用于掃描指定包(XXXX)下的所有.class文件,并將它們的全限定類名(如tomcat.SearchClassUtil)收集到列表中返回。該工具使用遞歸文件遍歷和反射機制,是實現 Spring 框…

云服務器的運用自如

云服務器的運用自如:從基礎到高階的實戰指南(2025版) 云服務器作為數字化轉型的核心工具,其靈活性和高效性已覆蓋從個人開發者到企業級應用的廣泛場景。以下是基于當前技術趨勢的云服務器深度運用策略,涵蓋核心應用、…

解密企業級大模型智能體Agentic AI 關鍵技術:MCP、A2A、Reasoning LLMs-docker MCP解析

解密企業級大模型智能體Agentic AI 關鍵技術:MCP、A2A、Reasoning LLMs-docker MCP解析 這里面有很重要的原因其中一個很其中一個原因是因為如果你使用docker的方式,你可以在虛擬環境下就類似于這個沙箱的這個機制可以進行隔離。這對于安全,…

快慢指針算法(Floyd 判圈算法)

快慢指針(又稱龜兔賽跑算法)是一種常用的鏈表操作技巧,通過兩個移動速度不同的指針遍歷鏈表,用于解決鏈表中環檢測、中點查找等問題。以下是其核心應用場景和實現方法: 1. 鏈表環檢測 問題描述: 判斷鏈表中…